想问一下大佬们,scanf函数的返回值是EOF啊?
while(x=(scanf("%f",&a))!=EOF)这个循环结束的条件是什么呀?我记得scanf在读取数值是会将回车(\n)跳过,
回车也会从缓冲区释放,所以scanf最后是没有读取到数值的,那他的返回值是啥啊?
请教了! scanf返回的应该是能够正确读入的变量的个数
这个好像没有循环结束条件,我刚刚试了一下,这个好像不论输入什么都会继续循环{:10_269:} tommyyu 发表于 2022-12-9 16:40
scanf返回的应该是能够正确读入的变量的个数
这个好像没有循环结束条件,我刚刚试了一下,这个好像不论 ...
确实,我也一直解决不了这个问题 清如许 发表于 2022-12-9 17:14
确实,我也一直解决不了这个问题
我感觉要改成while((scanf("%f",&a))!=0) #include <stdio.h>
int main(void)
{
float a ;
int x ;
while((x = scanf("%f" , & a)) != EOF) {
while(getchar() != '\n') ; // 读取一个数后必须清空键盘缓冲区,否则,一旦输入的是非数字,就会立即陷入死循环
if(x) printf("%f\n" , a) ;
else printf("error.\n");
}
} jackz007 发表于 2022-12-9 18:08
大佬你好,为啥我将getchar放到后面就不行了呢,麻烦了
while(x=(scanf("%f",&a))!=EOF)
{
if(x!=0)
{
sum=sum+a;
}
else
{
getchar();
}
} 你为什么一定要顽固坚持这样写:
while(x=(scanf("%f",&a))!=EOF)
怎么就不能接受我的
while((x = scanf("%f",&a)) != EOF)
你的就是错的!!!
页:
[1]