C ++将文本文件中的信息加载到2D数组中

时间:2015-01-20 01:57:48

标签: c++ arrays file file-io multidimensional-array

我是一个非常新手的程序员,我遇到了一些问题。我需要加载一个2D数组,其中的数据存储在一个文本文件中。文本文件如下所示(两个数字,然后是行的结尾。即1 1949,然后是下一行):


1 1949

2 1972

1983年

4 1959

1987年

1991年

1995年

1991年

9 1957

1980年

11 1995年

12 1995年


应该以相同的方式格式化数组。当然不是在寻找答案,而是朝着正确的方向努力。我一直在寻找无济于事。谢谢。

1 个答案:

答案 0 :(得分:0)

这里我使用pair<int, int>来存储每一行​​;如果您有C ++ 11,则可以使用array<int, 2>代替。其余的是样板,读数和分裂线。

#include <cassert>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char* argv[])
{
  assert(argc == 2);
  ifstream input(argv[1]);
  assert(input);

  vector<pair<int, int> > data;

  for (string line; getline(input, line); )
  {
    istringstream stream(line);
    data.resize(data.size() + 1);
    stream >> data.back().first >> data.back().second;
  }
}