Насколько я знаю cin оставляет символ '\n' в потоке из-за чего последующие вызовы cin.get() и cin.getline() не будут срабатывать, поскольку они будут натыкаться на символ перевода строки и завершать свою работу. Для того, чтобы функции cin.get() и cin.getline() успешно работали после cin >> нужно "выбросить" '\n' из потока при помощи cin.get() или cin.ignore(numeric_limits<streamsize>::max(), '\n').
Вопрос: почему cin будет работать и без "очищения" потока от символа '\n'?
Т.е. я имею в виду, что этот код будет работать без cin.get() или cin.ignore():
char str1[80], str2[80];
cin >> str1;
cin >> str2;
А этот нет:
char str1[80], str2[80];
cin >> str1;
cin.getline(str2, 80);
Если я как-то непонятно изложил суть проблемы, говорите)
operator >> производит чтение с разделением по пробельным символам и при вызове будет сначала пропускать эти символы, пока не дойдет до текста. getline производит чтение до конца строки.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости