【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

简介: 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

文章目录

一、追加键值对数据

二、更新键值对数据

三、完整代码示例





一、追加键值对数据


在上一篇博客 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 ) 中 , 介绍了 逐行 遍历查询 文本文件中的键值对信息 ;


如果没有查找到 Key 关键字 , 则说明原来的配置文件中 , 没有改键值对信息 ;


此处将最新的键值对信息 追加进去即可 ;


使用 fprintf 函数 , 向文件中 , 追加新的键值对信息 ;


 

// 如果 Key 关键字不存在 , 直接将数据追加到文件末尾即可
    if (key_exist == 0)
    {
        fprintf(fp, "%s = %s\n", key, value);
    }






二、更新键值对数据


如果 Key 关键字存在 , 则需要重新写出该文件的数据 , 原来的数据直接删除覆盖 ;


这里的 更新键值对数据 , 是直接删除原来文件的所有信息 , 重新写入完整的文件信息 ;



首先 , 关闭之前的文件 ;


   

// 先关闭之前的 文件指针
        if (fp != NULL)
        {
            fclose(fp);
            fp = NULL;
        }


然后 , 重新打开文件 ;


   

// 重新打开文件
        fp = fopen(filename, "w+t");
        if (fp == NULL)
        {
            ret = -4;
            printf("fopen() err. \n");
            goto End;
        }


最后 , 将文件的完整数据 , 写出到 文件 中 ;


   

// 将文件的完整数据 , 写出到 fp 中
        // 注意此处的文件数据 , 没有原来的 键值对数据
        // 写入了要更新的键值对数据
        fputs(file_buffer, fp);
        // 也可以使用 fwrite 函数 , 向文件中写出数据
        //fwrite(filebuf, sizeof(char), strlen(filebuf), fp);



代码示例 :


 

else // 如果 Key 关键字存在 , 则需要重新写出该文件的数据 , 原来的数据直接删除覆盖
    {
        // 先关闭之前的 文件指针
        if (fp != NULL)
        {
            fclose(fp);
            fp = NULL;
        }
        // 重新打开文件
        fp = fopen(filename, "w+t");
        if (fp == NULL)
        {
            ret = -4;
            printf("fopen() err. \n");
            goto End;
        }
        // 将文件的完整数据 , 写出到 fp 中
        // 注意此处的文件数据 , 没有原来的 键值对数据
        // 写入了要更新的键值对数据
        fputs(file_buffer, fp);
        // 也可以使用 fwrite 函数 , 向文件中写出数据
        //fwrite(filebuf, sizeof(char), strlen(filebuf), fp);
    }





三、完整代码示例


完整代码示例 :


 

// 如果 Key 关键字不存在 , 直接将数据追加到文件末尾即可
    if (key_exist == 0)
    {
        fprintf(fp, "%s = %s\n", key, value);
    }
    else // 如果 Key 关键字存在 , 则需要重新写出该文件的数据 , 原来的数据直接删除覆盖
    {
        // 先关闭之前的 文件指针
        if (fp != NULL)
        {
            fclose(fp);
            fp = NULL;
        }
        // 重新打开文件
        fp = fopen(filename, "w+t");
        if (fp == NULL)
        {
            ret = -4;
            printf("fopen() err. \n");
            goto End;
        }
        // 将文件的完整数据 , 写出到 fp 中
        // 注意此处的文件数据 , 没有原来的 键值对数据
        // 写入了要更新的键值对数据
        fputs(file_buffer, fp);
        // 也可以使用 fwrite 函数 , 向文件中写出数据
        //fwrite(filebuf, sizeof(char), strlen(filebuf), fp);
    }


目录
相关文章
|
1月前
|
存储 程序员 编译器
C 语言中的数据类型转换:连接不同数据世界的桥梁
C语言中的数据类型转换是程序设计中不可或缺的一部分,它如同连接不同数据世界的桥梁,使得不同类型的变量之间能够互相传递和转换,确保了程序的灵活性与兼容性。通过强制类型转换或自动类型转换,C语言允许开发者在保证数据完整性的前提下,实现复杂的数据处理逻辑。
|
9天前
|
存储 小程序 C语言
【C语言程序设计——文件】文件操作(头歌实践教学平台习题)【合集】
本文介绍了C语言中的文件操作,分为两个关卡。第1关任务是将键盘输入的字符(以#结束)存入`file1.txt`并显示输出;第2关任务是从键盘输入若干行文本(每行不超过80个字符,用-1作为结束标志),写入`file2.txt`后再读取并显示。文中详细讲解了文件的打开、读取(使用`fgetc()`和`fgets()`)、写入(使用`fputc()`和`fputs()`)及关闭操作,并提供了示例代码和测试说明。
28 5
|
1月前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
62 9
|
1月前
|
存储 数据管理 C语言
C 语言中的文件操作:数据持久化的关键桥梁
C语言中的文件操作是实现数据持久化的重要手段,通过 fopen、fclose、fread、fwrite 等函数,可以实现对文件的创建、读写和关闭,构建程序与外部数据存储之间的桥梁。
|
2月前
|
存储 数据建模 程序员
C 语言结构体 —— 数据封装的利器
C语言结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起,形成一个整体。它支持数据封装,便于管理和传递复杂数据,是程序设计中的重要工具。
|
2月前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
83 11
|
2月前
|
算法 C语言
C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项
本文深入讲解了C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项,通过实例演示了文件操作的基本流程,帮助读者掌握这一重要技能,提升程序开发能力。
173 3
|
2月前
|
存储 C语言
【c语言】玩转文件操作
本文介绍了C语言中文件操作的基础知识,包括文件的打开和关闭、文件的顺序读写、文件的随机读写以及文件读取结束的判定。详细讲解了`fopen`、`fclose`、`fseek`、`ftell`、`rewind`等函数的使用方法,并通过示例代码展示了如何进行文件的读写操作。最后,还介绍了如何判断文件读取结束的原因,帮助读者更好地理解和应用文件操作技术。
65 2
|
3月前
|
存储 C语言
简述C语言文件操作
简述C语言文件操作
15 0
|
存储 C语言
C语言 文件操作 深度解析 #重点知识:文件操作函数的使用#(下)
C语言 文件操作 深度解析 #重点知识:文件操作函数的使用#(下)

热门文章

最新文章