2009-11-06 68 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