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>  这样可以完全输入输出

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM