如何在C ++中将字符串拆分为整数数组?

时间:2019-01-28 10:09:49

标签: c++

我是c ++的新手,我的目标是读取一个包含所有整数的文件,例如

  

1 2 3 \ n 1 3 4 \ n 1 2 4 \ n

  

1,2 3,4 5,6 \ n 1,3 3,4 3,5 \ n 1,3 3,4 4,2 \ n

我可以使用getline读取它们,但是如何将其拆分为整数数组。像array[3]={1,2,3}array2={1,2,3,4,5,6}这样的第一行读取结果?抱歉,我忘了提到我试图不使用C ++的STL

1 个答案:

答案 0 :(得分:0)

您可以在没有精神振奋的情况下做到

// for single line:
std::vector<int> readMagicInts(std::istream &input)
{
    std::vector<int> result;

    int x;
    while(true) {
       if (!(input >> x)) {
           char separator;
           input.clear(); // clear error flags;
           if (!(input >> separator >> x)) break;
           if (separator != ',') break;
       }
       result.push_back(x);
    }

    return result;
}

std::vector<std::vector<int>> readMagicLinesWithInts(std::istream &input)
{
    std::vector<std::vector<int>> result;

    std::string line;
    while (std::getline(input, line)) {
        std::istringstream lineData(line);
        result.push_back(readMagicInts(lineData));
    }
    return result;
}