0

我想将二进制主文件复制到新的二进制文件中。这个文件只包含一个预定义的大小(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);

这段代码创建了大小合适的新文件,但这不是完全相同的文件,因为我无法像主文件一样使用这个新文件。有些不同,可能已损坏,可能是写入文件的方式???

你有什么主意吗 ???

我认为这是 MFC 代码

谢谢,

4

1 回答 1

2

当您执行 fseek(..SEEK_END) 时,打开的文件中的位置位于末尾,每当您调用 fread 时,您将在末尾获得 0 个字节。

之后再倒带:

fseek(A_Lire,0,SEEK_END);

int end = ftell(A_Lire);

fseek(A_Lire,0,SEEK_SET);
于 2009-11-06T16:23:44.540 回答