【问题标题】:Read int values from a text file in C从 C 中的文本文件中读取 int 值
【发布时间】:2011-06-03 19:14:33
【问题描述】:

我有一个包含以下三行的文本文件:

12 5 6
4 2
7 9

我可以使用 fscanf 函数读取前 3 个值并将它们存储在 3 个变量中。但我无法阅读其余部分。 我尝试使用fseek 函数,但它只适用于二进制文件。

请帮我将所有值存储在整数变量中。

【问题讨论】:

  • 如果您发布您的尝试并解释它是如何失败的,您可能会得到更多有用的答案。
  • fseek() 在文本文件上运行良好,但不清楚为什么需要使用它来读取显示的数据。

标签: c file file-io scanf line


【解决方案1】:

这个怎么样?

fscanf(file,"%d %d %d %d %d %d %d",&line1_1,&line1_2, &line1_3, &line2_1, &line2_2, &line3_1, &line3_2); 

在这种情况下,fscanf 中的空格匹配多次出现的任何空格,直到找到下一个标记。

【讨论】:

  • 可能值得一提的是,您/他应该检查他是否从fscanf() 返回了 7,否则会出现问题。
【解决方案2】:

使用fscanf的简单解决方案:

void read_ints (const char* file_name)
{
  FILE* file = fopen (file_name, "r");
  int i = 0;

  fscanf (file, "%d", &i);    
  while (!feof (file))
    {  
      printf ("%d ", i);
      fscanf (file, "%d", &i);      
    }
  fclose (file);        
}

【讨论】:

  • @Jonathan Leffler 是的,但故意的。
  • 使用这种方法,您不会打印最后一个值。删除第一个fscanf并将printf放在fscanf下方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
  • 2021-08-14
  • 2020-02-24
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
相关资源
最近更新 更多