
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 展开
例:
若输入为:
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 );
则声明了你在读字符的时候会用一个空格隔开,所以空格没有被读入。
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可以吧空格当一个字符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询