чтение разделенного пробела числа из файла до символа новой строки

У меня есть текстовый файл, который содержит следующие данные.

Первая строка такова:

5 4 3 2 1

Вторая строка такая:

1 2 3 4 5

Я пытаюсь читать данные по одной строке за раз, потому что мой первый объект связанного списка будет использовать данные из первой строки, а мой второй объект связанного списка будет использовать данные из второй строки. Лучшее, что я смог придумать, это следующая функция:

void polynomial::allocate_poly(std::ifstream& in, const char* file, const char* number)
{

    in.open(file);

    std::string str;
    char b;
    int m = 0;

    for(int i = 0; !in.eof(); ++i)
    {
        in >> b;
        m = b - '0';
        a.insert(m);
    }

Есть несколько проблем с этим подходом. Я пробовал разные бинарные операторы в моем цикле, такие какb == '\n' и ни один из них, кажется, не срабатывает, когда b символ новой строки.

Также выделение номеров из файла таким образом, как это выглядит5 5 4 3 2 1 1 2 3 4 5 , так что, кажется, где-то копирует лишние 5, я не уверен, что это бит eof или нет.

Я также попытался использовать функцию getline, но по какой-то причине кажется, что она копирует только первое целое число, а затем выгружает оставшуюся часть файла. Я точно знаю, что не правильно его использую, но все примеры, которые я могу найти, предназначены для ввода имени файла, напримерcin.getline и я хочу иметь возможность передать имя моего файла в качестве аргумента командной строки при запуске программы вместо этого.

Мой вопрос заключается в том, как я могу распределить числа в первом ряду до символа новой строки, а затем передатьifstream in переменная для другого объекта, чтобы выделить вторую строку? Спасибо за вашу помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос