先说方法之前先来浅聊一下scanf
开始进入正题
1.EOF法
EOF(end of file)就是文件的结束,通常来判断文件的操作是否结束的标志。
EOF不是特殊字符,而是定义在头文件<stdio.h>的常量,等于-1;
就如牛客网上的一道题为例:
如果是只输入1组数据,那这个是正确的。
#include <stdio.h>
int main()
{int a=0,b=0;//while(scanf("%d%d",&a,&b)!=EOF)//{scanf("%d%d",&a,&b);if(a==b){printf("%d=%d\n",a,b);}else if(a>b){printf("%d>%d\n",a,b);}else{printf("%d<%d\n",a,b);}//}return 0;
}
如果输入要是多组数据,那就会出现错误,结果只会输出1组数据
正确代码
#include <stdio.h>
int main()
{int a=0,b=0;while(scanf("%d%d",&a,&b)!=EOF){//scanf("%d%d",&a,&b);if(a==b){printf("%d=%d\n",a,b);}else if(a>b){printf("%d>%d\n",a,b);}else{printf("%d<%d\n",a,b);}}return 0;
}
2.计数法
while(scanf("%d%d",&a,&b)==2)
题目中输入一组是两个,所以它的返回值是2,就会继续下去,如果后面返回值不等于2了,那就是结束了
个人学习心得,希望对你有所帮助!