C语言scanf函数的格式控制问题

为什么在读字符函数(scanf)中首位置(%前)加入一个空格就可以吃掉输入的回车和空格符号?例:若输入为:AB(回车)用:scanf("%c%c",&ch1,&ch2);... 为什么在读字符函数(scanf)中首位置(%前)加入一个空格就可以吃掉输入的回车和空格符号?

例:
若输入为:
A B(回车)
用:
scanf ( "%c%c",&ch1,&ch2 );
printf( "%c %c",ch1,ch2 );
则输出为:A (回车)
用:
scanf ( " %c %c",&ch1,&ch2 );
printf( "%c %c",ch1,ch2 );
则输出为:A B
展开
 我来答
匿名用户
2013-11-11
展开全部
scanf ( "%c%c",&ch1,&ch2 );
printf( "%c %c",ch1,ch2 );
表示你读入的字符是连续读入的,而:
scanf ( " %c %c",&ch1,&ch2 );
printf( "%c %c",ch1,ch2 );
则声明了你在读字符的时候会用一个空格隔开,所以空格没有被读入。
匿名用户
2013-11-11
展开全部
空格的ASCII码值为32,scanf ( "%c%c",&ch1,&ch2 );这样输入的话空格也会被当作输入的值而被接收,scanf ( " %c %c",&ch1,&ch2 );写成这样,则声明输入一个字符必须输入空格隔开,所以空格没有被当作输入的值接收。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-11
展开全部
不是吃掉回车和空格符,是它把空格符给当做%c给了ch1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-11
展开全部
在scanf语句中空格是输入的意思,getcher可以吧空格当一个字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式