应该是头文件没有引用,或者头文件出问题了
说明你的gets函数根本没有声明啊,去定义一个函数在实现就好了
C语言的gets函数一般包含在stdio.h头文件里,如果没有包含比头文件那可能会有问题.第二种情况包含了还出问题,说明你的编译器已经不支持这个函数了,这个函数非常不安全,容易造成溢出,建议换成fgets函数.函数原型:char *fgets(char *buf, int bufsize, FILE *fp);参数解释:参数一是输入字符串存放地址,参数二是存放地址最大容量,参数三是从哪里输入,可以从文件也可从输入设备,如果从输入设备输入这个参数可以写成stdin,如果从文件输入此参数为文件指针.返回值:输入成功返回参数一,失败返回NULL.补充知识:为什么gets不让用呢,我们可以看它的原型:char *gets(char *buf);这个函数可以一直输入知道换行或者EOF,它并不考虑buf空间是否足够大能放下,这就容易导致溢出,有些别有用心的人就会利用这个漏洞去攻击你的程序.而fgets可以通过第二参数保证不会读入超过buf空间的字符.
C语言的gets函数一般包含在stdio.h头文件里,如果没有包含比头文件那可能会有问题.第二种情况包含了还出问题,说明你的编译器已经不支持这个函数了,这个函数非常不安全,容易造成溢出,建议换成fgets函数.
函数原型:
char *fgets(char *buf, int bufsize, FILE *fp);
参数解释:
参数一是输入字符串存放地址,
参数二是存放地址最大容量,
参数三是从哪里输入,可以从文件也可从输入设备,如果从输入设备输入这个参数可以写成stdin,如果从文件输入此参数为文件指针.
返回值:
输入成功返回参数一,失败返回NULL.
补充知识:
为什么gets不让用呢,我们可以看它的原型:char *gets(char *buf);
这个函数可以一直输入知道换行或者EOF,它并不考虑buf空间是否足够大能放下,这就容易导致溢出,有些别有用心的人就会利用这个漏洞去攻击你的程序.
而fgets可以通过第二参数保证不会读入超过buf空间的字符.
格式不对的,怎么能结束呢
当然不结束了啊
gets(str) 在读取成功的时候返回str,str保存的是成功读入的内容
在失败的时候返回NULL,str的内容保持不变
明白了么?
【1】函数:gets
#include"stdio.h"
void main()
{
gets(str1);
}
那句话的意思是说gets函数很危险(容易造成系统漏洞),最好不要用.但是不影响你的程序,还是可以照样运行的.
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!