C中scanf()!=EOF的理解
scanf("%d%d",&a,&b)!=EOF;
- 如果a和b都被成功读入,那么上面表达式的结果为2;
- 如果只有一个读入,那么上面表达式的结果为1;
- 如果a&&b都没有读入,那么上面表达式的结果为0(若a没有读入,则直接放弃b的读入);
- 如果遇到错误或者文件结尾,那么上面表达式的结果为EOF,对应的有符号数时-1;
- 如果遇到Crrl+Z,那么上面表达式的结果为EOF,对应的有符号数时-1;
EOF=end of file!!!,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。