задача проста, но не могу разобраться, мне нужно построчно считывать из файла.
bkkk book;
setlocale(LC_ALL, "rus");
ifstream lib("lib.txt");
int n;
lib>>n;
cout << n<< endl;
//
lib.getline(book.name, 50);
cout << book.name<<endl;
//
lib.getline(book.autor, 50);
cout << book.autor<<endl;
//
lib >>book.artcl;
cout << book.artcl<<endl;
//
lib >>book.cond;
cout << book.cond<<endl;
//
lib >>book.reit;
cout << book.reit<<endl;
//
выводит :
2
Эти свободные бабочки
0
-922093277
0
вместо :
2
Эти свободные бабочки
Герш
45788
1
5,5
как я понял, проблема в том, что lib>>
- не переводи на след строку. как это можно исправить?
После чтения типа
lib >>book.cond;
в буфере остается остаток строки (как минимум \n
). Убрать его можно (и нужно), вызывая после этого чтения сброс символов до конца строки, например:
lib.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
//*не учитывая как осуществляется вызов 1 или 2 способ (результат тот же)