У меня есть файл, который идет как это:Раздвигая вектор в другой вектор
98
287 2352
987 4313 3253
235 34325 432 123
В основном я хочу, чтобы воспроизвести этот файл. Я пытаюсь импортировать строку за раз, извлекать числа и вставлять их в векторы. Каждый вектор вставляется в больший вектор.
int main(int argc, char* argv[])
{
int sum = 0, one = 0, two = 1;
std::string line, number;
std::vector<int> vec;
std::vector<std::vector<int>> bigvec;
auto k = vec.begin();
std::ifstream in(argv[1]);
while(in >> line) {
std::istringstream is(line);
while(is >> number) {
vec.push_back(stoi(number));
}
bigvec.push_back(vec);
while(!vec.empty()) {
vec.pop_back();
}
std::cout << std::endl;
}
return 0;
}
Мой код, хотя, когда я печатаю результат, кажется, помещает каждое число в его собственном векторе вместо воспроизведения файла.
Так что мой вывод
98
287
2352
etc.
кажется, что линия
while(is >> number) {
vec.push_back(stoi(number));
}
толкает один номер, а затем выходит из цикла.
Куда я иду не так?
'while (! Vec.empty()) {vec.pop_back(); } 'Eww! 'vec.clear();' будет делать именно это. – jrok
'std :: string number;' Eww! 'int number; while (is >> number) {vec.push_back (number);} 'будет прекрасно. – andre
Собирался сказать то же самое :) – Chemistpp