【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )

举报
韩曙亮 发表于 2022/01/12 00:31:24 2022/01/12
【摘要】 文章目录 一、写出或更新配置文件二、读取配置文件 一、写出或更新配置文件 写出或更新配置文件 : 首先 , 使用 字符数组 存储 键值对 信息 ; //...





一、写出或更新配置文件



写出或更新配置文件 :

  • 首先 , 使用 字符数组 存储 键值对 信息 ;
    // 写出 或 更新 的配置项
    // 数组声明会后 , 注意先进行初始化为 0 操作 , 否则其中的数据可能是随机的
    char key[256] = {0};      // Key 键
    char value[256] = {0};    // Value 值

  
 
  • 1
  • 2
  • 3
  • 4
  • 然后 , 通过 scanf 获取 键值对 信息 ;
    // 提示输入 Key 键
    printf("\nPlease Input Key : ");
    // 将 Key 存储到 name 字符串数组中
    scanf("%s", key);

    // 提示输入 Value 值
    printf("\nPlease Input Value : ");
    // 将 Value 值 存储到 value 字符串数组中
    scanf("%s", value);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 最后 , 调用 write_or_update_config_file 函数 , 传入 文件名 , 要 写出 或 更新的 键值对信息 ;
    // 向 D:/File/config.ini 写出或更新 键值对 信息
    ret = write_or_update_config_file(CONFIG_FILE_NAME /*in*/, key /*in*/, value/*in*/,strlen(value) /*in*/);

  
 
  • 1
  • 2

代码示例 :

/**
 * @brief write_update_config
 * 启动 写出 / 更新 配置项 模块 , 执行 写出 / 更新 配置项操作
 * @return
 */
int write_update_config()
{
    // 局部变量 返回值 , 用于表示程序状态
    int ret = 0;

    // 写出 或 更新 的配置项
    // 数组声明会后 , 注意先进行初始化为 0 操作 , 否则其中的数据可能是随机的
    char key[256] = {0};      // Key 键
    char value[256] = {0};    // Value 值

    // 提示输入 Key 键
    printf("\nPlease Input Key : ");
    // 将 Key 存储到 name 字符串数组中
    scanf("%s", key);

    // 提示输入 Value 值
    printf("\nPlease Input Value : ");
    // 将 Value 值 存储到 value 字符串数组中
    scanf("%s", value);

    // 向 D:/File/config.ini 写出或更新 键值对 信息
    ret = write_or_update_config_file(CONFIG_FILE_NAME /*in*/, key /*in*/, value/*in*/,strlen(value) /*in*/);
    // 判定执行中是否出错
    if (ret != 0)
    {
        printf("error : write_or_update_config : %d \n", ret);
        return ret;
    }

    // 打印成功插入的键值对
    printf("Input :%s = %s Success !\n", key , value);
    return ret;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38




二、读取配置文件



读取配置文件 :

  • 首先 , 使用 字符数组 存储 键值对 信息 , 声明相关字符数组 ;
    // 读取 的配置项
    // 数组声明会后 , 注意先进行初始化为 0 操作 , 否则其中的数据可能是随机的
    char key[256] = {0};      // Key 键
    char value[256] = {0};    // Value 值

  
 
  • 1
  • 2
  • 3
  • 4
  • 然后 , 通过 scanf 获取 键值对 信息 ;
    // 提示输入 Key 键
    printf("\nPlease Input Key : ");
    // 将 Key 存储到 name 字符串数组中
    scanf("%s", key);

  
 
  • 1
  • 2
  • 3
  • 4
  • 最后 , 调用 read_config_file 函数 , 传入 文件名称 , 键 字符串 , 值的接收数组 , 以及 写入 Value 值 的长度 ;
    // 从 D:/File/config.ini 读取 键值对 信息
    ret = read_config_file(CONFIG_FILE_NAME /*in*/, key /*in*/, value/*in*/, &value_len /*out*/);

  
 
  • 1
  • 2

代码示例 :

/**
 * @brief read_config
 * 从配置文件中 , 读取配置文件 键值对 信息
 * @return
 */
int read_config()
{
    // 局部变量 返回值 , 用于表示程序状态
    int ret = 0;

    // 读取 的配置项
    // 数组声明会后 , 注意先进行初始化为 0 操作 , 否则其中的数据可能是随机的
    char key[256] = {0};      // Key 键
    char value[256] = {0};    // Value 值

    // 值 Value 的长度
    int value_len = 0;

    // 提示输入 Key 键
    printf("\nPlease Input Key : ");
    // 将 Key 存储到 name 字符串数组中
    scanf("%s", key);

    // 从 D:/File/config.ini 读取 键值对 信息
    ret = read_config_file(CONFIG_FILE_NAME /*in*/, key /*in*/, value/*in*/, &value_len /*out*/);
    if (ret != 0)
    {
        printf("error : read_config : %d \n", ret);
        return ret;
    }

    // 打印查询结果
    printf("Get Value Success , Value = %s \n", value);

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/121720421

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。