我是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
答案 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;
}