先说方法之前先来浅聊一下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了,那就是结束了
❤️结语:
本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!