#include
#include
#include
using namespace std;
struct node
{
int x,y;
};
int main(){
FILE* f1 = fopen("in.dat","w");
node a;
for(int i = 0;i < 10000;i++){
a.x = rand();
a.y = rand();
fwrite(&a,sizeof(a),1,f1);
}
fclose(f1);
f1 = fopen("in.dat","r");
int i = 1;
while(!feof(f1)){
fread(&a,sizeof(a),1,f1);
printf("%d\t",i++);
}
cout << endl;
}
feof()詳細講解
看完這篇博文,再單步跟蹤看看,你就會明白了。
feof()宏是判斷當前讀取內容是否是-1來判斷文件結束,這在二進制文件中並不可靠。而文件不指明打開方式的話,默認打開格式就是二進制格式。所以問題應該在這裡。