想检查文件中是否存在值

时间:2012-03-19 04:14:44

标签: c file

这里我有一个包含一些信息的文件,我想检查文件中是否存在某些标记值。如果存在,那么我想检索这些值。

这里标签的数量是固定的,标签的长度不会超过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

我从数据文件中读取行,而不是我要解析每个标记的值(手段想要识别值是否存在)。

所以这是做任何身体建议我这个事情的好方法吗?

1 个答案:

答案 0 :(得分:0)

鉴于您的样品,我尝试的第一种方法是:

Read a line
Remove all whitespace
   If the last character on the line is a colon <do something>
Else
    Do something else