【发布时间】:2021-12-26 07:58:53
【问题描述】:
try.ini 文件:
[teachers]
teacher1 = joseph
teacher2 = ryan
[students]
student1 = john
student2 = johnny
[class]
class1 = biology
class2 = chemistry
源文件:
char x[255];
file = fopen("try.ini", "r");
while (fgets(x, 255, file) != NULL) {
if (strcmp(x, "[students]\n") == 0) {
//This prints the title
printf("%s", x);
}
else {
//This is to test for else statement
printf("test");
}
}
我正在尝试“切片”内容以获取标题及其下方的内容。所以例如使用strcmp,当while语句找到匹配时,它会打印出它的标题和它下面的内容,而忽略其余的内容。
所以想要的输出是:
[students]
student1 = john
student2 = johnny
我在想这是一种可行的方法,以及如何读取顶部内容末尾到下一个标题之间的空白字符串?例如:
teacher2 = ryan
<blank space>
[students]
【问题讨论】:
-
可以搜索“c源解析.ini文件”
-
我想我已经看透了 parse .ini 外部库,但我仍然不明白它是如何工作的。因此,我试图使程序尽可能简单,因为我只读取 ini 文件内容,如果可以不使用它来完成的话。尽管能够使用它会很有用,因为它将提供额外的访问权限,例如读写 ini 文件。
-
每个部分之前可能有也可能没有空行。检查行是否以
[开头,这表示新部分的开始。fgets返回一个缓冲区,从行尾删除\n,修剪它,如果长度为零则为空白。