C语言文件写入文本问题
#include<stdio.h>int main()
{
FILE *fp1,*fp2;
fp1=fopen("file1.txt","r");
fp2=fopen("file2.txt","w");
while(!feof(fp1)) putchar(getc(fp1));
rewind(fp1);//返回起始位置
while(!feof(fp1)) putc(getc(fp1),fp2);
printf("file1.txt内容已经复制到了file2.txt里面");
fclose(fp1);
fclose(fp2);
}
程序可以运行,没有错误,完成将file1.txt文件输出,并复制到file2.txt里面,
但是我运行一次之后,再点一次编译运行,并没有多复制一遍,
按理说不应该是运行一次,file2里面就多一遍file1的内容吗?求解释 本帖最后由 jackz007 于 2019-11-24 18:32 编辑
这一句:
fp2=fopen("file2.txt","w");
每次执行的时候,会检查文件 "file2.txt" 是否已经存在,如果是,那就先把文件长度截断为 0,然后再打开;如果否,那就直接新建文件,然后再打开。所以,无论运行多少遍,文件 "file2.txt" 始终只有 1 份 "file1.txt" 文件的内容。
页:
[1]