用c语言对文件的操作问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:02:14
include<stdio.h>
#define LENfile 200
void main()
{
char f1[LENfile],f2[LENfile];
int temp; /*temp作用??*/
FILE *fp1,*fp2; /*文件指针*/
printf("%d,%d\n",d,f(6,-3));
gets(f1); /*复制文件*/
gets(f2);
fp1=fopen(f1,"rb");/*二进制只读打开*/
fp2=fopen(f2,"wb");
while(1)
{
fread(&temp,1,1,fp1);
if (feof(fp1)) break;
fwrite(&temp,1,1,fp2);
}
fclose(fp1);
fclose(fp2);
}
该程序实现文件的复制?其中的fread和fwrite中的temp作用是什么?按说明应该是文件的起始地址,int temp;temp初值多少?我把它改成char型,或者随便给个初值都能完成复制操作,好像这temp又可以不要,能换成个其他的?

fread(&temp,1,1,fp1); //从 fp1读取4个字节,放到temp
fwrite(&temp,1,1,fp2); //把temp写入fp2

我把它改成char型,或者随便给个初值都能完成复制操作,好像这temp又可以不要,能换成个其他的?

答:换成char更好,因为文件长度不一定是4的倍数

temp就相当于一个缓冲区啊,每从fp1里面读一个数据,就放入temp中,然后再从temp放入fp2中.所以不需要初始化.
实际应用中肯定不会一个数一个数地读,肯定是一次读很多数据,然后一次性写入,因为I/O操作耗时比较厉害,要尽量减少I/O次数.

只是一个中间变量 这个地址用来存文件的指针而已,做为一个中间量而已,任意的都可以,只要给定义一下