关于C语言中字符串处理函数fgets的用法

如果定义了两个字符数组a[10]b[10]然后连续用两个fgets(a,11,stdin);fgets(b,11,stdin);然后用两个puts依次打印出两个字符数组的... 如果定义了两个字符数组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

请具体讲解一下。我是初学的,多包涵啊~在线等
展开
 我来答
L_o_o_n_i_e
2011-05-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5159万
展开全部
fgets(str1,11,stdin); -- fgets 从文件输入流读取一行字符串(分隔符是换行键),包括空白到 str1 里。stdin 表示标准输入流,就是键盘输入。11 (实际上用10) 是 最多读入的字符个数。
当一行(含'\n') 不足11个字符 时,读到 '\n',包括 '\n' ,放入str1
当一行超过10个字符时,只读10个字符,放入str1。
照理你应当声明:
char str1[11] ,str2[11]; 而不是 [10].
---------
当你拍入 1234567890ABCDEFG,这串东西进了 输入缓冲区
fgets(str1 。。)到 输入缓冲区 用去了 1234567890, 还余下 ABCDEFG
fgets(str2 。。)接着 到 输入缓冲区,从余下的东西里 取数。打算 取 11 (实际上用10)个字符,但遇到了 Enter 键,所以 读入的内容是 ABCDEFG

输出语句就不用说了。
百度网友e768659f
推荐于2017-10-15 · 知道合伙人教育行家
百度网友e768659f
知道合伙人教育行家
采纳数:7168 获赞数:114010
98年参加工作,本科学历,帮助身边所有人,是我最大追求!

向TA提问 私信TA
展开全部
fgets(str1,11,stdin); -- fgets 从文件输入流读取一行字符串(分隔符是换行键),包括空白到 str1 里。stdin 表示标准输入流,就是键盘输入。11 (实际上用10) 是 最多读入的字符个数。
当一行(含'\n') 不足11个字符 时,读到 '\n',包括 '\n' ,放入str1
当一行超过10个字符时,只读10个字符,放入str1。
照理你应当声明:
char str1[11] ,str2[11]; 而不是 [10].
---------
当你拍入 1234567890ABCDEFG,这串东西进了 输入缓冲区
fgets(str1 。。)到 输入缓冲区 用去了 1234567890, 还余下 ABCDEFG
fgets(str2 。。)接着 到 输入缓冲区,从余下的东西里 取数。打算 取 11 (实际上用10)个字符,但遇到了 Enter 键,所以 读入的内容是 ABCDEFG

输出语句就不用说了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是百人敌
2011-05-06 · TA获得超过358个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:267万
展开全部
fgets(char* s, int size, FILE* stream) :
最多在stream中读取size-1个字符存入s指向的缓冲区。
遇到EOF(文件结束符)或'\n'结束,('\n'放入s中)
并在末尾加个\0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式