【问题标题】:Read formatted data from text file in C从 C 中的文本文件中读取格式化数据
【发布时间】:2023-03-31 02:52:01
【问题描述】:

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

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

还有其他想法吗?

谢谢

【问题讨论】:

  • “但是,动态存储它似乎过于复杂和低效。”你确定你的例子有效吗?我从来不知道fscanf 接受正则表达式作为其格式字符串。
  • 谢谢@user3121023。你说的对。如果你愿意,我可以给你正确的答案。不过你需要发布它

标签: c regex io scanf


【解决方案1】:

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

只需使用 user3121023 提到的 fscanf

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

【讨论】:

  • 谢谢。我对 C 不是很熟悉。我认为我必须做这样的事情。
猜你喜欢
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2019-11-10
  • 1970-01-01
相关资源
最近更新 更多