Я почти уверен, что делаю глупую ошибку, но этот код выдает вывод, который слишком длинный для чтения - PullRequest
0 голосов
/ 17 апреля 2019

Я думаю, что запутался где-то между указателями. Я не знаю, должен ли я изменить Книгу * на что-то или нет.

Любая помощь будет оценена. Спасибо.

istream& operator >> (istream& is, Warehouse& warehouse){

    int counter = 0;
    Book* temp;
    Book* headNode;

    is >> headNode;
    while (!is.eof()){
        temp = headNode;
        is>> headNode;
        headNode.setNext(temp); 
        counter++;
    }
    warehouse.bookCount = counter; 
    warehouse.head = headNode;
    return is;
}

1 Ответ

2 голосов
/ 17 апреля 2019

Проблема 1

is >> headNode;

не так.Чтение указателя из файла не имеет смысла.В вашем размещенном коде есть две такие строки.

Проблема 2

while (!is.eof()){

неверна.См. Почему iostream :: eof внутри условия цикла считается неправильным?

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

...