Сначала прочитайте строку, используя функцию std::getline
, затем используйте std::stringstream
, чтобы прочитать целые числа из строки как:
std::ifstream file("input.txt");
std::vector<std::vector<int>> vv;
std::string line;
while(std::getline(file, line))
{
std::stringstream ss(line);
int i;
std::vector<int> v;
while( ss >> i )
v.push_back(i);
vv.push_back(v);
}
Вы также можете написать тело цикла как:
while(std::getline(file, line))
{
std::stringstream ss(line);
std::istream_iterator<int> begin(ss), end;
std::vector<int> v(begin, end);
vv.push_back(v);
}
Это выглядит короче и лучше. Или объединить - две последние строки:
while(std::getline(file, line))
{
std::stringstream ss(line);
std::istream_iterator<int> begin(ss), end;
vv.push_back(std::vector<int>(begin, end));
}
Теперь не делайте его короче, так как это будет выглядеть уродливо.