Проблеми с getline в Домашно от "Упражнение цикли 2", задача 2 - Exam Preparation
Здравейте,
За пореден път имам проблеми при използване на getline(cin,string);, като вместо в конзолата да чете вход, Visual (а и judge) директно прескачат реда, все едно не съществува.
Ето код от конкретната задача.
На редове 18 и 19 ще видите едно и също, а именно getline(cin, name);, където name е името на съответния пореден урок.
Логично погледнато би трябвало два пъти да се очаква вход при повторение на двата реда. Да, ама не. Така програмата работи и дава 100 точки в judge.
Ако изтрия дублиращият ред всичко отива по дяволите и getline не чете нищо, четат се само числата (оценките по съответния предмет, който getline е трябвало да "хване").
Въпросите са два:
1. Защо се случва това?
2. Кога се случва това и как да се избегне? Личните ми впечатления показват, че се случва при въвеждане поредно чрез getline и cin >>, но нали използваме getline заради проблема на >> с "white spaces" (не може да прочете фраза с интервал в нея, а взима стойността само на низа до интервала)?
Благодаря предварително за помощта. Минаха часове, докато успея да хвана защо всичко се дъни...