C语言中对用户输入的读取

chara,b;printf("输入第一个字符:\n");scanf("%c",&a);printf("输入第二个字符:\n");scanf("%c",&b);为什么第二... char a,b;
printf("输入第一个字符:\n");
scanf("%c",&a);
printf("输入第二个字符:\n");
scanf("%c",&b);
为什么第二个字符输不出来呢?难道只能一句话吗,不能分开吗?
展开
 我来答
忘至白葬不情必0T
推荐于2018-04-13 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
因为你输入完第一个字符后按了回车键,而回车键实际上输入了2个字符,第一个字符被scanf用来确认输入结束,第2个字节仍保留在缓冲区内,被第2个scanf读到了,因此b的值实际上是回车输入的第2个字符,是个控制字符,不可见.

以后注意了,在scanf("%c",getchar之类输入字符的语句前,要加fflush(stdin);清空缓冲区.
想念黄黄
2009-07-24
知道答主
回答量:25
采纳率:0%
帮助的人:0
展开全部
你第一个字符也输不出来吧
因为你没有输出这两个字符的语句啊
printf("输入第一个字符:\n");
scanf("%c",&a);
printf("输入第二个字符:\n");
scanf("%c",&b);
printf("%c",a);
printf("%c",b);
==================================
我不知你说的“用一句话什么意思”
如果你不想一次次用scanf printf的话 可以这样子:
char a;
while (scanf("%c",&a)!=EOF)//有字符读入
printf("%c\n",a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0068e82
2009-07-24 · TA获得超过236个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:143万
展开全部
一楼正解,,你加上那个清除缓冲区函数就好了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祈拉之祈
2009-07-24 · TA获得超过1541个赞
知道大有可为答主
回答量:1802
采纳率:0%
帮助的人:2523万
展开全部
程序是一句句运行的

第一个输出完

它等你输入a

所以第二个字符输不出来

你可以输入一个字符,回车

这样就有了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式