1
我不擅長C,但我從來沒有見過這樣的事情。分割錯誤,當我fread一個二進制文件
我有一個二進制文件,file.bin
,其中有一個long
整數後面跟着很多double
實數。所以我寫了以下內容:發生在fread(&i,sizeof(long),1,fp);
#include <stdio.h>
int main(void) {
char filename[1000];
sprintf(filename, "~/file.bin");
FILE *fp;
long i;
double x;
fp=fopen(filename,"rb");
fread(&i,sizeof(long),1,fp);
printf("%ld\n",i);
for (i=0;i<20;i++){
fread(&x,sizeof(double),1,fp);
printf("%le\n",x);
}
fclose(fp);
return 0;
}
分割違反我以這種方式以前寫過類似的代碼,他們都工作得很好,但這不是。
非常感謝您的回答。
僅供參考,我在linux服務器上使用gcc 3.4.6。
'fp'包含什麼值? – immibis
'fread'需要一個非空的文件指針。請檢查fopen的結果。 ('〜'語法被shell理解,但可能無法被標準庫識別,請嘗試完整的已解析路徑。) –
@MOehm哦......就是這樣。謝謝。 –