从文件读入多个数组

Posted

技术标签:

【中文标题】从文件读入多个数组【英文标题】:reading from file into several arrays 【发布时间】:2016-01-13 19:34:01 【问题描述】:

我想编写一个读取文本文件 test.txt 的 c++ 代码 并将内容写入几个数组。 文件看起来像:

[7,13,17]
[[0,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
[1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0],
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]]

我写的代码

#include <iostream>
#include <fstream>

using namespace std;

int main()


  int parameter[10];
  int physical[7][7];

  const char* filename;

     filename = "src/cplex_N7.txt";

      ifstream f(filename, ios::in);
      if (!f) 
         cerr << "No such file: " << filename << endl;
         throw(1);
      

    f >> parameter >> physical ;
  // cout  content
   return 0;

但我总是遇到错误和错误的输出,请您帮忙以最好的方式执行此操作。我的意思是我可以在没有 for 循环或不处理逗号和分隔符的情况下读取文件。

【问题讨论】:

您没有处理删除文本中的所有[,],, 您需要单独阅读每个数字,跳过分隔符等。 如果您拼出 what 错误、what 错误输出是什么以及应该是什么,您将获得更多/更好的帮助。跨度> 你必须读一些书(通过尝试和错误学习C++是不好的) 没有用于从 C++ 文件中读取整个数组的内置函数。您需要自己编写合适的代码或使用库。 【参考方案1】:

你不能以这种方式处理字符串。看来您正在使用 try/error 方法学习 c++,这是学习编程语言的最糟糕的方法。 我写了一个小示例来读取您格式中的一行数字:

string x = "1,0,1,0,1,0,1,0,1,0";
int array[10];
for(int i = 0; i < x.size(); i+=2)
    array[i / 2] = x[i] - '0';

数字是偶数索引,所以我们应该迭代字符串的偶数位姿。它们每个都是一个char,我们可以通过从'0'中减去它们来获得int值。

【讨论】:

以上是关于从文件读入多个数组的主要内容,如果未能解决你的问题,请参考以下文章

如何从文件中将文本读入ruby中的数组

使用 fortran 将文件读入数组:跳过多个标题行

从文件中读取多行中的多个值(Java)

如何在MATLAB中读入多个音频文件啊?

Java:将整数从文件读入数组

从文本文件中将数据读入 numpy 数组