从C中的文本文件中读取格式化数据

时间:2014-09-20 16:06:46

标签: c regex io scanf

txt文件中读取此数据的最佳方法是什么?

12   name1 2     1    65000
13   name2 5   3    30000
17   name3       2       3      30000
20   name4        3    2      58000

请注意,空格可能会随着每一行而改变。

我在考虑做这样的事情:

while (fscanf(file, "%s\\S{1,}", string) != EOF)
{
    if (!isdigit(*string))
        printf("Name: %s\n", string);

    else if(*string != '0')
        printf("Number: %s \n", string);               
}

但是,动态存储它似乎过于复杂和低效。

还有其他想法吗?

谢谢

1 个答案:

答案 0 :(得分:3)

无需使用正则表达式。

只需使用user3121023

中提到的fscanf即可
while ( fscanf ( file, "%d %s %d %d %d", &digit[i], &str[i], &number[i], &value[i]) == 4) { i++;}