| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10949 人关注过本帖
标题:C语言中文件文件内容的插入如何实现
取消只看楼主 加入收藏
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:3 
C语言中文件文件内容的插入如何实现
通过文件定位后对文件进行写入操作,但是如果在定位的后面还有原有的数据,写入操作会破坏原有数据。请问:如何实现在不破坏原有数据的基础上,对文件进行插入数据的操作?
可以清晰的看出,文件执行的是对元数据的替换,而不是插入!
我的测试代码如下:
程序代码:
#define _CRT_SECURE_NO_DEPRECATE
# include <stdio.h>
#include<stdlib.h>
#define see system("pause")
void main()
{
    FILE *ff; 
    char ch,sh[20];

    ff = fopen("..\\5.txt", "r+");//以读写方式打开文件
    if (ff == NULL){
        printf("error\n");
        see;
    }
    while ((ch = fgetc(ff))!= EOF)    //输出文件内容
    {
        putchar(ch);
    }
    putchar(10);
    rewind(ff);
    while ((ch = fgetc(ff)) != EOF&&ch != '\n')//定位第一行
        ;
    fseek(ff, 0L, 1);
    fprintf(ff, "%s", "test");
    rewind(ff);
    while ((ch = fgetc(ff)) != EOF)    //输出文件内容
    {
        putchar(ch);
    }

    see;
}
测试原文件及结果如下
图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: 如何 C语言 system 
2016-09-08 15:27
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
回复 2楼 linlulu001
无论我把文件的打开方式是用“a”,还是“a+”。都不能实现在文本中间添加内容。能不能麻烦你告诉我一下,我应该去了解文件的哪一些知识?

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-09-08 16:12
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
回复 3楼 书生牛犊
可是这只能在文件末尾添加内容,我是想在文本的中间插入内容,请问,这应该怎么去实现的呢?

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-09-08 16:13
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
回复 8楼 书生牛犊
嗯,原来如此。

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-09-09 10:16
快速回复:C语言中文件文件内容的插入如何实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040251 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved