当前位置: 首页 > news >正文

简易键值对文本解析

除了json,xml,protobuf等成体系的配置文件外,简单的文本格式“key value”的配置文件也在很多开源项目中存在,这种配置文件的好处是简单、易于理解和编辑。

#include <stdio.h>
#include <string.h>#define MAX_LINE_LENGTH 1024void ParseConfig(const char *filePath)
{FILE *file = fopen(filePath, "r");if (file == NULL){perror("Error opening file");return;}char line[MAX_LINE_LENGTH];while (fgets(line, sizeof(line), file) != NULL){// 去掉行末尾的换行符line[strcspn(line, "\r\n")] = '\0';// 忽略注释和空行if (line[0] == '#' || line[0] == '\0'){continue;}// 解析配置项char *key = strtok(line, " \t");char *value = strtok(NULL, " \t");if (key != NULL && value != NULL){printf("%s   %s\n", key, value);}}fclose(file);
}int main()
{const char *filePath = "config.txt";ParseConfig(filePath);return 0;
}
http://www.lryc.cn/news/248559.html

相关文章:

  • 成为AI产品经理——模型评估(混淆矩阵)
  • Git_git相关指令 高阶
  • PC企业微信http协议逆向接口开发,发送大视频文件
  • hyper-V操作虚拟机ubuntu 22.03
  • Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具
  • 代理模式-C++实现
  • 从 0 到 1 开发一个 node 命令行工具
  • VsCode中使用功能vite创建vue3+js项目报错
  • COGVLM论文解读(COGVLM:VISUAL EXPERT FOR LARGE LANGUAGE MODELS)
  • Flink-时间流与水印
  • BiLSTM-CRF的中文命名实体识别
  • paddle detection 训练参数
  • 用bat制作图片马——一句话木马
  • json_encode() 返回 false
  • Android-Jetpack--Hilt详解
  • Docker 下载加速
  • 1091 Acute Stroke (三维搜索)
  • java elasticsearch 桶聚合(bucket)
  • 【人生苦短,我学 Python】(4)Python 常用内置数据类型 II —— 序列数据类型(str、tuple、list、bytes和bytearray)
  • Android 9.0 系统默认显示电量百分比
  • 原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显
  • Sublime text 添加到鼠标右键菜单,脚本实现
  • 【算法】离散化 与 哈希 之间的区别
  • Android : GPS定位 获取当前位置—简单应用
  • 目标检测——R-CNN算法解读
  • 基于傅里叶变换的运动模糊图像恢复算法matlab仿真
  • 使用mock.js模拟数据
  • Android Handler同步屏障:深入解析
  • HT for Web (Hightopo) 使用心得(5)- 动画的实现
  • Leetcode(面试题 08.01.)三步问题