EOF用法问题
#include<stdio.h>
int main(){
int i;
while(scanf("%d",&i)!=EOF){
printf("%d",i);
}
return 0;
}
当输入1和ctrl+z时如果同行输入会陷入死循环而不是结束程序,是为什么
根据参考链接,在Windows下使用ctrl+z产生EOF,需要在输入的新的一行的开始,图片中在是输入1结束后按下ctrl+z,所以就导致结果出错了;
可以在输入的一行开始按下ctrl+z即可。
测试如下:
参考链接:
#include<stdio.h>
int main(){
int i;
// printf( " %d occurs %d times\n", currVal,cnt);
// 在新的一行开始输入ctrl+z,结束输入
while(scanf("%d",&i)!=EOF){
printf("%d",i);
}
return 0;
}
while(scanf("%d",&i)!=1){
printf("%d",i);
}