网站首页 > 文章中心 > 其它

gets函数返回值_c语言里面gets(a)是什么意思

作者:小编 更新时间:2023-10-24 18:50:46 浏览量:101人看过

应该是头文件没有引用,或者头文件出问题了

说明你的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函数.

gets函数返回值_c语言里面gets(a)是什么意思-图1

函数原型:

char *fgets(char *buf, int bufsize, FILE *fp);

参数解释:

参数一是输入字符串存放地址,

参数二是存放地址最大容量,

参数三是从哪里输入,可以从文件也可从输入设备,如果从输入设备输入这个参数可以写成stdin,如果从文件输入此参数为文件指针.

返回值:

输入成功返回参数一,失败返回NULL.

补充知识:

gets函数返回值_c语言里面gets(a)是什么意思-图2

为什么gets不让用呢,我们可以看它的原型:char *gets(char *buf);

这个函数可以一直输入知道换行或者EOF,它并不考虑buf空间是否足够大能放下,这就容易导致溢出,有些别有用心的人就会利用这个漏洞去攻击你的程序.

而fgets可以通过第二参数保证不会读入超过buf空间的字符.

格式不对的,怎么能结束呢

当然不结束了啊

gets(str) 在读取成功的时候返回str,str保存的是成功读入的内容

在失败的时候返回NULL,str的内容保持不变

明白了么?

【1】函数:gets

gets函数返回值_c语言里面gets(a)是什么意思-图3

#include"stdio.h"

void main()

{

gets(str1);

}

那句话的意思是说gets函数很危险(容易造成系统漏洞),最好不要用.但是不影响你的程序,还是可以照样运行的.

以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章