代码很短
首先是用fopen打开要复制的文件,这里我用1.jpg,这个图片 有602kb,长这个样子↓
来看代码
我没有选用fread来读取文件,再用fwrite来写入,因为这样做缓冲区基本是不够大的,
不如换个思路,将大文件看成一个一个的小文件,用fgetc 一个一个地读出来,再一个一个地写进去。
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp = fopen("1.jpg", "r");
FILE *fd = fopen("2.jpg", "w");
while (1)
{
int c = fgetc(fp); //读取
fprintf(fd,"%c",c); //写入
if(c == EOF) //当c不等于零时
break;
}
fclose(fp);
fclose(fd);
}