2009-11-06 69 views
0

我想複製一個新的二進制文件中的二進制主文件。該文件只包含預定義的大小(20000行)。複製二進制文件的MFC問題

這裏我在做什麼:

 FILE *A_Lire; 
    FILE *A_Creer; 

A_Lire = fopen(MASTERPath,"rb"); 
A_Creer = fopen(PARTPRGPath, "wb"); 

fseek(A_Lire,0,SEEK_END); 
int end = ftell(A_Lire); 

char* buf = (char*)malloc(end); 

fread(buf,sizeof(char),end,A_Lire); 
fwrite(buf,sizeof(char),end,A_Creer); 

fclose(A_Creer); 
fclose(A_Lire); 

此代碼創建一個具有良好的尺寸新的文件,但這是不完全相同的文件,因爲我不能夠使用這個新的文件,如主。有些東西是不同的,也許是損壞的,也許是寫入文件的方式?

你有什麼想法?

我覺得這是MFC代碼

感謝,

回答

2

,當你做FSEEK(.. SEEK_END),打開的文件中的位置是在年底,當你調用FREAD,你得到0字節,就像你在最後一樣。

只是做了退之後:

 
fseek(A_Lire,0,SEEK_END); 

int end = ftell(A_Lire); 

fseek(A_Lire,0,SEEK_SET); 
+0

+1,但我認爲這是SEEK_SET,而不是SEEK_BEGIN的 – schnaader 2009-11-06 16:31:31

+0

非常感謝你!!!!!!! – user90714 2009-11-06 16:34:44

+0

我同意,我正在編輯答案,謝謝@schnaader – rossoft 2009-11-06 16:34:58