C语言读写INI配置文件:完整指南与代码示例
C语言读写INI配置文件:完整指南与代码示例
INI 文件是一种常见的配置文件格式,常用于存储应用程序的配置信息。其结构简单,易于读写,因此在各种应用程序中得到广泛应用。本指南将详细介绍如何使用C语言读写INI文件,并提供完整的代码示例、解析技巧、错误处理和安全建议。
1. INI 文件结构
INI 文件通常由多个节(section)组成,每个节包含多个键值对(key-value pair)。节名用方括号括起来,例如 [section_name]。键值对以等号分隔,例如 key=value。
以下是一个简单的INI文件示例:ini[settings]language=Englishtheme=dark
[database]host=localhostport=3306
2. C语言读取INI文件
以下代码示例演示了如何使用C语言读取INI文件:c#include <stdio.h>#include <stdlib.h>#include <string.h>
#define MAX_BUFFER_SIZE 1024
// 读取INI文件void read_ini(const char* filename) { FILE* file = fopen(filename, 'r'); if (file == NULL) { perror('无法打开文件'); return; }
char buffer[MAX_BUFFER_SIZE]; char current_section[MAX_BUFFER_SIZE] = '';
while (fgets(buffer, sizeof(buffer), file)) { // 去除行尾空格和换行符 buffer[strcspn(buffer, '
')] = 0;
// 检查是否是节名 if (buffer[0] == '[' && buffer[strlen(buffer) - 1] == ']') { strncpy(current_section, buffer + 1, strlen(buffer) - 2); current_section[strlen(buffer) - 2] = '�'; } else { // 解析键值对 char* key = strtok(buffer, '='); char* value = strtok(NULL, '=');
if (key && value) { printf('[%s] %s = %s
', current_section, key, value); } } }
fclose(file);}
int main() { const char* filename = 'config.ini'; read_ini(filename); return 0;}
代码解释:
- 打开文件: 使用
fopen()函数以只读模式打开INI文件。2. 逐行读取: 使用fgets()函数逐行读取文件内容到缓冲区。3. 解析节名: 判断行首是否为[并且行尾是否为],如果是则提取节名。4. 解析键值对: 使用strtok()函数根据=分割字符串,分别获取键和值。5. 输出结果: 打印读取到的节名、键和值。
3. C语言写入INI文件
以下代码示例演示了如何使用C语言写入INI文件:c#include <stdio.h>
void write_ini(const char* filename) { FILE* file = fopen(filename, 'w'); if (file == NULL) { perror('无法打开文件'); return; }
fprintf(file, '[settings]
'); fprintf(file, 'language=English '); fprintf(file, 'theme=dark ');
fprintf(file, '
[database] '); fprintf(file, 'host=localhost '); fprintf(file, 'port=3306 ');
fclose(file);}
int main() { const char* filename = 'config.ini'; write_ini(filename); printf('已写入INI文件 '); return 0
原文地址: http://www.cveoy.top/t/topic/oAy 著作权归作者所有。请勿转载和采集!