Я читаю из файла целых чисел, преобразовываю каждый элемент в файле в целое число и добавляю целое число к вектору векторов, если файл перемещается на новую строку, вектор векторов перемещается в новый вектор , Например, если входной файл содержит:
9
2 5 8
7 1 10
5 3
20 15 30
100 12
Вектор векторов должен содержать:
[ [9],
[2, 5, 8],
[7, 1, 10],
[5, 3],
[20, 15, 30],
[100, 12] ]
Однако проблема с моей реализацией заключается в том, что он хранит:
[ [2, 5, 8],
[7, 1, 10],
[5, 3],
[20, 15, 30] ]
Использование кода для вывода:
2 5 8
7 1 10
5 3
20 15 30
Код:
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int main() {
ifstream inputFile("input.txt"); // Opens input file.
char currentChar;
int currentInput = 0;
vector<vector<int>> vec;
vector<int> vec2;
while (inputFile.get(currentChar)) { // Reads each character of given file.
if (currentChar == '\n') { // If current character is a new line, store current vec2 in vec and clear vec2
vec.push_back(vec2);
vec2.clear();
}
inputFile >> currentInput; // Current character to integer
vec2.push_back(currentInput); // Adds current integer to vec2
}
vec2.clear();
inputFile.close();
for (const auto& inner : vec) { // Prints vector of vectors.
for (auto value : inner) {
cout << value << " ";
}
cout << endl;
}
}
Любые предложения о способах решения этой проблемы очень помогут.