永发信息网

c语言如何在特定的某一行进行删除插入等?

答案:1  悬赏:0  手机版
解决时间 2021-02-23 09:54
网上都说是要把那个特定的某一行跳过去然后复制到一个新文件,但是我不明白怎么跳过那个特定部分?fgetc(fp)读取文件里的字符然后while((fgetc(fp))==‘特定字符’)这样不行么?真是完全不会..
最佳答案
C语言文件操作有覆盖和追加两种模式,但不提供插入模式。所以要在文件中指定行进行删除或者插入,需要按照如下流程操作:
1、以只读打开文件;
2、将文件逐行读入到内存中;
3、关闭文件;
4、在内存中对指定行插入或者删除;
5、以只写打开文件;
6、将修改后的数据写入文件;
7、关闭文件。 
参考代码:
假定文件最多100行,执行删除第5行,并在原第8,9行中间插入一行数据为例,代码如下:
#include <stdio.h>
#include <string.h>
char buf[100][1000];
int main()
{
    FILE *fp;
    char *s="abcdef\n";//要插入的数据
    int i=0;
    int n=0;
    fp = fopen("my.txt", "r");//读方式打开文件
    while(fgets(buf[n], 1000, fp) != EOF)//循环读取所有数据
        n++;
    fclose(fp);//关闭文件。
    for(i = 4; i<7; i ++)//删除第五行
        strcpy(buf[i],buf[i+1]);
    strcpy(buf[7], s);//插入到第8行。
    fp=fopen("my.txt", "w");//写方式打开文件。
    for(i = 0; i < n; i ++)//写入所有处理后的数据。
        fputs(buf[i], 1000, fp);
    fclose(fp);//关闭文件。
    return 0;    
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小善大用阅读答案
崖柏根雕我想买,郑州哪有卖的
安钢辞职需要什么手续
贵阳麻冲站到金阳客车站怎么坐公交去?
艺术接受与艺术的本质有哪些关系
2015年100元人民币有收藏价值吗?
买小米电视一定要配小米盒子才能用吗?
太仓属于什么地方
16岁的女生适合穿什么样的衣服 。穿高跟鞋行
蕲春有缘婚介诚交35/45岁女性为伴?
婴儿的旧衣服怎么消毒
华硕x205ta原来的。win8被进pe删除了,想换wi
把电梯的图案变成八芒星图案
看世界地图上下左右是什么
芒种过后的第一个丙辰日是哪天?什么叫丙辰日
推荐资讯
豪华彩铝门在什么地方啊,我要过去处理事情
世界的星座有没有仙女座
我想在鲁美附中附近租房 短期 很着急 我要在
“安民劳事”这个词怎么解释,越详细越好,
商店卖的那种三元一袋那种泡椒猪皮吃多了好不
从南山或深圳罗湖汽车站到北师珠怎么坐车啊?
《过去的人们是怎么数数的呢
欧豪的qq5085919,加了不要骚扰哦。
歌词“我只喜欢你 深深的爱上你”是什么歌啊
亿通风湿灵片多少钱一盒
长沙兴平轮胎贸易有限公司地址在哪,我要去那
跪求一个很冷很冷的QQ网名。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?