如果定义了两个字符数组a[10] b[10]
然后连续用两个
fgets(a,11,stdin);
fgets(b,11,stdin);
然后用两个puts依次打印出两个字符数组的内容.
如果第一次输入的时候超过了10个字符(其中没有按回车键).
那么在第一次回车后会显示两个字符串的内容,第一次输入的多于10个的字符保存到了第二个字符数组中。
请问这是为什么?fgets不是行缓冲输入吗?
具体例子如下:
#include"stdio.h"
#include"string.h"
void main()
{
char str1[10];
char str2[10];
fgets(str1,11,stdin);
fgets(str2,11,stdin);
printf("%s\n%s\n",str1,str2);
printf("%c\n",str2[0]);
}
输入asdfasdfasdf123
回车后直接输出两组字符串
asdfasdfas
df123
请具体讲解一下。我是初学的,多包涵啊~
参考资料:fgets getchar