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()函数与它的替代者fgets()函数

c语言中gets ,getschar 和fgets 的用法及三者之间的差别

53 再谈字符串

C语言字符型二维数组用scanf和gets如何输入,举个例谢谢

c语言中怎样用scanf()读入带空格的字符串

c语言,gets函数的详细用法?