MFC问题复制二进制文件

时间:2009-11-06 16:19:42

标签: file mfc binary copy-paste

我想在新的二进制文件中复制二进制主文件。这个文件只包含预定义的大小(20000行)。

我在做什么:

     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);

此代码创建具有良好大小的新文件,但这不是完全相同的文件,因为我无法像master那样使用这个新文件。有些东西是不同的,可能已损坏,也许是在文件中写入的方式???

你有什么想法???

我认为这是MFC代码

谢谢,

1 个答案:

答案 0 :(得分:2)

当你执行fseek(.. SEEK_END)时,打开文件内的位置就在最后,无论何时调用fread,你都会得到0字节。

之后再做一个倒带:

fseek(A_Lire,0,SEEK_END);

int end = ftell(A_Lire);

fseek(A_Lire,0,SEEK_SET);