这里我有一个包含一些信息的文件,我想检查文件中是否存在某些标记值。如果存在,那么我想检索这些值。
这里标签的数量是固定的,标签的长度不会超过16,标签的值的长度几乎不会超过10个字节。
从下面的文件中我想检查KERNEL
标记值是否存在,FS
标记值是否存在等等。
我想在:
(冒号)之后检查所有值是否存在。
我的文件包含这样的文字。
KERNEL:2.31
FS:3.4
XLOADER:1.1
UBOOT:2.2
或者像这样
KERNEL:2.31
FS:
XLOADER:1.3
UBOOT:
我正在使用此代码
#include <stdio.h>
int main() {
FILE *infile = fopen("example.txt", "r");
char buffer[256];
char value[128];
while (fgets(buffer, sizeof(buffer), infile))
if (1 == sscanf(buffer, "KERNEL:%s", value)) {
printf("Value = %s\n", value);
}
return 0;
}
但在代码中我必须为不同的不同值调用4次此函数4次。比如KERNEL,FS等。
此代码输出如下
Value = 2.31
我从数据文件中读取行,而不是我要解析每个标记的值(手段想要识别值是否存在)。
所以这是做任何身体建议我这个事情的好方法吗?
答案 0 :(得分:0)
鉴于您的样品,我尝试的第一种方法是:
Read a line
Remove all whitespace
If the last character on the line is a colon <do something>
Else
Do something else