c语言关于scanf读取回车(空格)的问题

 

#include<stdio.h>
int main()
{
int a1, a2;
char c1, c2;
scanf("%d%d", &a1, &a2);
scanf("%c%c", &c1, &c2);
printf("%d %d %c %c", a1, a2, c1, c2);

}

输入10 20<CR> A B<CR> 的输入

为什么输出是10 20 空格 A

 

这是由于scanf读取数据时回车会虽然不会读取但会放在缓存区

下面执行的是%c将缓存区的回车读入,然后再读取A。 B读取不输出

需要直接输入  10 20AB<C R>  这样可以完全输入输出

 

posted @ 2020-03-10 21:09  新生代农民工  阅读(3923)  评论(0)    收藏  举报