gets是什么,第1张

get从标准输入设备读取字符串函数,可以无限期读取,不需要判断上限,所以程序员要保证缓冲区的空空间足够大,避免读取时溢出。

get从标准输入设备读取字符串函数,可以无限期读取,不需要判断上限,所以程序员要保证缓冲区的空空间足够大,避免读取时溢出。

gets是什么,gets是什么,第2张

功能

从stdin流中读取字符串,直到它接收到一个换行符或EOF,并将读取结果存储在缓冲区指针指向的字符数组中。新行字符不作为读取字符串的内容,读取的新行字符转换为' \ 0'空字符,从而结束字符串。

返回值

读入成功,返回与参数缓冲区相同的指针;

读取过程中出现文件结束或错误,返回空指针。因此,当返回值为空时,使用ferror或feof函数检查是否有错误或eof。

注意

因为这个函数可以无限读,所以很容易溢出。如果发生溢出,多余的字符将被写入堆栈,这将覆盖堆栈的原始内容,并破坏一个或多个无关变量的值。这个事实导致get函数只适用于玩具程序。为了避免这种情况,我们可以将get()替换为fgets(stdin) (fgets实际上可以读取标准输入,也就是大多数情况下的键盘输入)。详情见fgets条目)。在V7 (1979)的手册中,规定为了向后兼容,get删除换行符,get不将换行符存储在缓冲区中。

2011年12月,ANSI采用了ISO/IEC 9899:2011标准,其中删除了gets()的函数,而使用了一个新的更安全的函数gets _ s()(具体用法见下面的例子)。

get()函数用于从标准输入设备(键盘)读取字符串,直到换行符结束,但换行符会被丢弃,然后& # 8217;[12]’人物。调用格式为:

获取(s);

其中s是字符串变量(字符串数组名或字符串指针)。

Get (s)函数和scanf(& # 8220;% s & # 8221,s)相似,但不完全相同,使用scanf(& # 8220;% s & # 8221当,s)函数输入一个字符串时会出现一个问题,即如果输入空,则该字符串将被视为结束,并且空之后的字符将被视为下一个输入项,但是get()函数将接收整个输入字符串,直到遇到新的一行。

摘要:get()函数读取\n(我们输入的回车符),所以它停止读取,但是它不在字符串中包含\n。但是,与它一起使用的put函数在输出字符串时会自动换行。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » gets是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情