程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c-這個程序為什麼輸出的是25個呢?

c-這個程序為什麼輸出的是25個呢?

編輯:編程綜合問答
這個程序為什麼輸出的是25個呢?

#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來判斷文件結束,這在二進制文件中並不可靠。而文件不指明打開方式的話,默認打開格式就是二進制格式。所以問題應該在這裡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved