鱼C论坛

 找回密码
 立即注册
查看: 1218|回复: 1

[已解决]C语言文件写入文本问题

[复制链接]
发表于 2019-11-24 18:06:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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的内容吗?求解释
最佳答案
2019-11-24 18:23:36
本帖最后由 jackz007 于 2019-11-24 18:32 编辑

      这一句:
        fp2=fopen("file2.txt","w");
      每次执行的时候,会检查文件 "file2.txt" 是否已经存在,如果是,那就先把文件长度截断为 0,然后再打开;如果否,那就直接新建文件,然后再打开。所以,无论运行多少遍,文件 "file2.txt" 始终只有 1 份 "file1.txt" 文件的内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-24 18:23:36 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-11-24 18:32 编辑

      这一句:
        fp2=fopen("file2.txt","w");
      每次执行的时候,会检查文件 "file2.txt" 是否已经存在,如果是,那就先把文件长度截断为 0,然后再打开;如果否,那就直接新建文件,然后再打开。所以,无论运行多少遍,文件 "file2.txt" 始终只有 1 份 "file1.txt" 文件的内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 12:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表