【问题标题】:Reading in values from a file [closed]从文件中读取值[关闭]
【发布时间】:2019-08-31 19:02:51
【问题描述】:

我有一个看起来有点像这样的文件:

6 3
0 4 5 5 6 9
1 11 21 2 22 23

我想读取前 2 个数字并将它们存储到两个单独的整数中,分别为 n 和 m。第二行我想读入一个动态分配的大小为 2*m 的 int 数组,第三行我想读入一个动态分配的大小为 n 的 int 数组。我有另一个函数(即 void),它将获取这些数组并生成一个动态分配的大小为 m 的 int 数组。然后我想将该数组的内容写入输出文件。我该怎么做呢?

我尝试使用 fscanf(input_ptr, "%d", &n)fscanf(input_ptr, "%d\n", &m) 读取前两个数字,但我不确定 %d\n 是否是转到下一行的正确方法。我不确定如何在接下来的两行中阅读它们对应的两个数组。

【问题讨论】:

  • 贴出你试过的代码,而不是1行。

标签: c arrays file


【解决方案1】:

您只需拨打fscanf()即可读取前两个号码:

int n, m;
if (fscanf(input_ptr, "%d%d", &n, &m) != 2) {
   /* invalid input */
   return 1;
}

在格式字符串中添加尾随 \n 是无用的并且有副作用:fscanf() 将继续从 input_ptr 读取,直到它得到一个不是空白的字节,从而防止换行符充当输入终止符.

对于下面的输入,分配数组并用fscanf(input_ptr, "%d", &x)在2个循环中读取数字,始终检查返回值是否输入成功。

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多