Форум программистов, компьютерный форум CyberForum.ru

getline(cin, str) и cin>> - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.75
[progeR]
6 / 7 / 0
Регистрация: 20.08.2011
Сообщений: 587
16.01.2013, 16:32     getline(cin, str) и cin>> #1
Добрый день.
Есть код:
C++
1
2
3
4
5
6
...
string str;
int N;
cin>> N;
getline(cin, str);
cout<<str<<endl; //Выводит: <пустота>          Брехня!
Число ввел, дальше хочу ввести строку, а он уже ее на экране отобразил, хотя я еще к клавиатуре не прикоснулся.
Почему так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.01.2013, 16:36     getline(cin, str) и cin>> #2
После ввода числа
Цитата Сообщение от [progeR
;4010709]cin>> N;
во входной очереди остается символ '\n'
дальше getline() считывает этот символ и считает что строка закончена.
вроде так
[progeR]
6 / 7 / 0
Регистрация: 20.08.2011
Сообщений: 587
16.01.2013, 17:07  [ТС]     getline(cin, str) и cin>> #3
Вот как... И как с этим бороться? Еще раз cin использовать не катит.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.01.2013, 17:08     getline(cin, str) и cin>> #4
cin.get(); добавить
C++
1
2
3
cin>> N;
cin.get();
getline(cin, str);
Yandex
Объявления
16.01.2013, 17:08     getline(cin, str) и cin>>
Ответ Создать тему
Опции темы

Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru