Насколько я знаю 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
производит чтение до конца строки.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Необходимо посадить событие с помощью атрибута onclick на тег <p>Объясните, пожалуйста, почему в данном случае функция не вызывается?
Мне нужно спарсить изображения определенного класса со страницы и разместить их в WinForms