本文共 688 字,大约阅读时间需要 2 分钟。
feof函数很奇怪,本人曾经栽倒在这上面,下面来看程序:
#includeusing namespace std;int main(){ FILE *fp = fopen("myData.txt", "w"); fprintf(fp, "1 2 \n3 4 5 6 \n"); // \n为换行 fclose(fp); int a; fp = fopen("myData.txt", "r"); while(!feof(fp)) { fscanf(fp, "%d", &a); cout << a << endl; } fclose(fp); return 0;}
程序结果居然是:
1
2 3 4 5 6 6上网搜索一下,就知道其中的原因. 个人建议,尽量不要在不了解feof的情况下用它. 上面的程序最好改为:
#include结果为:using namespace std;int main(){ FILE *fp = fopen("myData.txt", "w"); fprintf(fp, "1 2 \n3 4 5 6 \n"); // \n为换行 fclose(fp); int a; fp = fopen("myData.txt", "r"); while(EOF != fscanf(fp, "%d", &a)) { cout << a << endl; // 读取文件中所有的整数 } fclose(fp); return 0;}
1
2 3 4 5 6总之, feof很怪异,留个心吧。
转载地址:http://anzti.baihongyu.com/