Проблема в том, что после того, как вы посчитали количество строк в конце файла, вам больше нечего читать.Файл не перемещается обратно в начало автоматически.Вы должны указать файлу вернуться к началу.
Вторая похожая проблема заключается в том, что при достижении конца файла происходит сбой функции getline
(потому что больше нечего читать).Это переводит ваш файл в состояние ошибки , когда ничего не будет работать, пока вы не очистите состояние ошибки.
Наконец, вызов !fileB.good()
не требуется.Файл никогда не будет хорошим на этом этапе, опять же, это потому, что getline
не удалось.
Попробуйте этот код
while (getline(fileB, line)) //contador de filas
{
++counter;
}
fileB.clear(); // clear the error state
fileB.seekg(0); // go back to the beginning of the file
int current_number = 0;
while (fileB >> current_number)
{
numbers.push_back(current_number);
}