scanf() gets() fgets()使用注意事项
Posted hellokitty2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf() gets() fgets()使用注意事项相关的知识,希望对你有一定的参考价值。
1、scanf()
遇到‘\n‘停止从输入缓冲区中接收,接收完后‘\n’还存在于缓冲区中。当输入的字符数少于缓冲区大小时,字符后面有自动补上‘\0’,当输入字符大于缓冲区时,也直接拷贝到缓冲中,因此缓冲区大小应注意以免产生段错误。
2、gets()
当输入的字符串低于缓冲区长度时,以‘\n’‘\0‘结尾,此时缓冲区中什么也没留下;当输入的字符串大于缓冲区长度时,也会全部存入缓冲区中,注意缓冲区大小以免产生段错误,此时缓冲区中什么也没留下。
3、fgets()
从文件字节流中获取指定长度的字符串并以‘\0’结尾,比如要获取10个字符,实际上获取9个字符加一个‘\0‘
<textarea readonly="readonly" name="code" class="c">
#include <stdio.h>
int main()
{
char buff[10];
printf("input string:");
fgets(buff, 10, stdin);
printf("%s\n", buff);
getchar();
return 0;
}
</textarea>
以上是关于scanf() gets() fgets()使用注意事项的主要内容,如果未能解决你的问题,请参考以下文章
c语言中gets ,getschar 和fgets 的用法及三者之间的差别