Перебор слов в текстовом файле

178
13 января 2019, 17:20

Задача вот какова: вытащить из текстового файла три значения с каждой строки: товар, магазина и цену. Я создал динамический массив структур list. Goods - структура, в ней три параметра name, shop, price. Вроде все считывается, но четвертой строки, как на картинке, быть не должно. Цикл просто дублирует число 50 с прошлой строки. Почему тогда снова считывает, если и так уже достигнут конец файла? И что нужно, чтобы решить проблему?

void Read(ifstream &file) {
    string s;
    while (file) {
        Goods product;
        file >> s;
        cout << s << " ";
        product.name = s;
        file >> s;
        cout << s << " ";
        product.shop = s;
        file >> s;
        product.price = stoi(s);
        cout << s << "\n";
        list.push_back(product);
    }
}
READ ALSO
Странные границы матрицы в c++

Странные границы матрицы в c++

Вот есть функция:

171
c++ взаимодействие с fortran

c++ взаимодействие с fortran

Как можно использовать фортран функций в С++?

185
Оптимизация алгоритма

Оптимизация алгоритма

Никак не могу выполнить задачу, заданную в ВУЗе - мой алгоритм не работает для больших значенийПодскажите какой-нибудь другой алгоритм для...

170