2014-09-20 119 views
0

txt文件中读取此数据的最佳方法是什么?从文本文件中读取格式化数据C

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);    
} 

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

还有其他想法吗?

谢谢

+0

提到

只需使用的fscanf“不过,这似乎过于复杂和低效的动态存储。”你确定你的例子有效吗?我永远不知道'fscanf'接受一个正则表达式作为它的格式字符串。 – starrify 2014-09-20 16:14:51

+0

是的。它的工作 – 2014-09-20 16:15:29

+0

谢谢@ user3121023。你是对的。如果你想我可以给你正确的答案。您需要将其发布,但 – 2014-09-20 16:28:15

回答

3

有没有必要使用正则表达式。由user3121023

while (fscanf (file, "%d %s %d %d %d", &digit[i], &str[i], &number[i], &value[i]) == 4) { i++;} 
+0

谢谢。我对C不是很熟悉,我认为我必须这样做。 – 2014-09-20 16:24:12