将整数和单词读入数组c ++

时间:2016-04-08 15:10:02

标签: c++ arrays

我的文件有数字和单词,所有结尾都是-1 我将如何将其放入数组中 例如;

所以在file.dat我有它像

6 5 yo moma 5 6 -1

9 sup chicken 2 5 -1

...

我希望将第一行放入一个数组,将秒行放入另一个数组,依此类推 所以像这样

array_1[] 6 5 mo mo 5 5 6

array_2[]会有 9 sup chicken 2 5 等等

那我该如何做呢。

1 个答案:

答案 0 :(得分:2)

由于输入文件包含数字和单词的混合,因此您需要std::vector<std::vector<std::string> >来存储它们。

#include <fstream>
#include <string>
#include <vector>

std::ifstream infile("file.dat");
std::vector<std::vector<std::string> > result;
int lineCount = 0;
std::string line;

while (std::getline(infile, line))
{
    int current i = 0;
    // "line.size() - 3" because all data lines end with " -1"
    for (int j = 0; j < line.size() - 3; ++j)
    {
        if (line[j] == ' ')
        {
            result[lineCount].push_back(line.substr(i, j - i));
            i = j + 1;
        }
    }
    ++lineCount;
}