|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #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" 文件的内容。
|
|