首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何用C重写文本文件中的一部分行

在C语言中,可以使用文件操作函数来重写文本文件中的一部分行。以下是一个示例代码:

代码语言:txt
复制
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *file;
    char line[100];
    int lineNumber = 1;
    int startLine = 3;
    int endLine = 7;

    // 打开文件
    file = fopen("example.txt", "r+");
    if (file == NULL) {
        printf("无法打开文件。\n");
        exit(1);
    }

    // 定位到指定行的起始位置
    while (fgets(line, sizeof(line), file) != NULL) {
        if (lineNumber == startLine) {
            break;
        }
        lineNumber++;
    }

    // 重写指定行的内容
    while (lineNumber <= endLine) {
        printf("请输入第 %d 行的新内容:", lineNumber);
        fgets(line, sizeof(line), stdin);
        fseek(file, -strlen(line), SEEK_CUR);
        fputs(line, file);
        lineNumber++;
    }

    // 关闭文件
    fclose(file);

    printf("重写完成。\n");

    return 0;
}

上述代码中,我们首先使用fopen函数打开要操作的文本文件(此处假设文件名为example.txt),并以读写模式打开("r+")。然后,我们使用fgets函数逐行读取文件内容,通过判断行号是否达到指定的起始行(此处假设为第3行),来定位到指定行的起始位置。

接下来,我们使用一个循环来重写指定行的内容。在每次循环中,我们使用fgets函数从标准输入读取用户输入的新内容,并使用fseek函数将文件指针移回到当前行的起始位置,然后使用fputs函数将新内容写入文件。

最后,我们使用fclose函数关闭文件,并输出提示信息表示重写完成。

请注意,上述代码仅为示例,实际使用时可能需要根据具体需求进行适当修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 3月3号 阶段性考试 IO

    3月3号 阶段性考试(考试6个小时,讲评+重写6个小时): 记录完成每一题所需要的时长。 1、将a.jpg的文件字节与b.jpg文件文件字节合并为一个文件c.jpg。也就是c.jpg中文件的前一部分是a.jpg的内容,后一部分是b.jpg的内容。不用管生成的c.jpg是否是合法的图片。 2、编写一个程序,将d:\code目录下的所有.jpg文件复制到d:\code2目录下,并将文件的扩展名从.jpg改为.bmp(不用进行文件格式转换)。 3、读取一个文本文件,统计其中数字字符的个数。 4、一个文本文件含有如下内容,分别表示姓名和成绩: 张三 90 李四 96 王五 78 赵六 82 用户输入要查询的姓名,打印出此人的成绩,如果不输入姓名直接按回车则显示所有人的姓名以及成绩。注意:这个文本文件的行数可能会变,而且文件可能会非常大。

    01

    数据库的 IO 到底有多慢?

    有过多年应用开发经验的同学大都会体验过数据库 IO 比较慢的情况,但到底会慢到什么程度,特别是和其它读写数据的手段相比的差距,可能很多人还没有感性认识。 Java 是普遍采用的应用开发技术,我们来实际测试一下,Java 程序从 Oracle 和 MySQL 这两种典型数据库中读数的性能,并和读文本文件对比。 用国际标准 TPCH 的工具生成数据表,选用其中的 customer 表,3000 万行,8 个字段。生成的原始文本文件有 4.9G。将这些数据导入到 Oracle 和 MySQL 中。 硬件环境是单台 2CPU 共 16 核的服务器,文本文件和数据库都在 SSD 硬盘上。所有测试都在本机完成,没有实质上的网络传输时间。

    02

    读会搜索引擎

    搜索引擎一般由索引管理器,索引检索器,索引构建器,文档管理器组成。 索引管理器,顾名思义是管理带有索引结构的数据,负责对索引的访问。那么索引是怎么管理的呢?不可能总是放在内存里,索引通常来讲是作为二级存储的二进制文件,二级存储可以理解为 硬盘之类的,二进制文件是除了文本文件以外的文件(文本文件是指由ascii码等方式显示的文件)。 索引检索器,是负责利用索引对全文进行搜索,输入是应用层传输过来的数据,和索引管理器一起协同查询文档,并以某种方式反馈给用户。 索引构建器,从文本中生成索引的组件。通常而言,构建器会将文本解析成一个个单词序列,再将单词序列转换为索引结构。 文档管理器,存储着文档,负责取出与查询结果匹配的文档,如果有需要的话会选取一部分作为摘要。 只要根据ID的来检索数据库就好,至于自己用文件夹存储呢,还是用mysql之类的数据库可以自己考虑。 此外,还会有爬虫和搜索排序系统,最出名的当属pagerank。

    01
    领券