我编写了一个程序来将一个文件复制到另一个文件,但是在复制后它给了我不同的校验和而不是实际的校验和。
如果文件包含字符,我想将一个文件复制到另一个文件,EOF or null
那么我仍然需要将整个文件从一个文件复制到另一个文件(例如:zip 文件、tar 文件等)
#include<stdio.h>
int main()
{
FILE *p, *q;
char file1[20], file2[20];
const int BUF_SIZE = 1024;
unsigned char buf[BUF_SIZE];
printf("\nEnter the source file name to be copied:");
gets(file1);
p = fopen(file1, "r");
if (p == NULL )
{
printf("cannot open %s", file1);
exit(0);
}
printf("\nEnter the destination file name:");
gets(file2);
q = fopen(file2, "w");
if (q == NULL )
{
printf("cannot open %s", file2);
exit(0);
}
fseek(p, 0, SEEK_END);
unsigned int left_to_copy = ftell(p);
while (left_to_copy > BUF_SIZE)
{
fread(buf, BUF_SIZE, 1, p);
fwrite(buf, BUF_SIZE, 1, q);
left_to_copy -= BUF_SIZE;
}
fread(buf, left_to_copy, 1, p);
fwrite(buf, left_to_copy, 1, q);
printf("\nCOMPLETED");
fflush(p);
fflush(q);
fclose(p);
fclose(q);
return 0;
}
我使用了上面的代码,但目标文件给了我不同的校验和意味着文件不像源文件那样复制。
谢谢