读书人

关于C语言while中scanf的运用

发布时间: 2012-09-13 09:51:53 作者: rapoo

关于C语言while中scanf的使用
int a=0,b;
while(scanf("%d",&b)==1)a++;
printf("%d",a);
我想用这段程序统计输入数的个数

这段程序用GUIDE编译运行可以按CTRL+D结束输入,但是输完数后必须按个回车再CTRL+D才出结果,不按回车没结果
还有,这段程序用Anjuta编译后不管怎么按,都不会出结果
这是为什么呢
还有没有更好的算法呢,求大神赐教
(我是在Linux下操作的)
还有这个CTRL+D到底干吗的呢

[解决办法]
按回车才会把数据从缓冲区取回,CTRL+D相当于EOF结束符。
[解决办法]

C/C++ code
int a=0,b,r;while(1) {  r=scanf("%d",&b);  if (1==r) a++;  else if (0==r) getchar();//跳过该字符  else break;//-1==EOF==r}printf("%d",a);
[解决办法]
ctrl + D means EOF

读书人网 >C语言

热点推荐