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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.75
[progeR]
29 / 7 / 0
Регистрация: 20.08.2011
Сообщений: 601
#1

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

16.01.2013, 16:32. Просмотров 3124. Ответов 3
Метки нет (Все метки)

Добрый день.
Есть код:
C++
1
2
3
4
5
6
...
string str;
int N;
cin>> N;
getline(cin, str);
cout<<str<<endl; //Выводит: <пустота>          Брехня!
Число ввел, дальше хочу ввести строку, а он уже ее на экране отобразил, хотя я еще к клавиатуре не прикоснулся.
Почему так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 16:32     getline(cin, str) и cin>>
Посмотрите здесь:

Метод cin.getline(str,n,'\n'), если в строке более n-1 символа C++
C++ Отличие функции cin.get и cin.getline
cin.getline и cin.ignore C++
Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync C++
C++ Cin вместо cin.getline
C++ Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
C++ Не работает ни cin.Get(), ни cin.Getline()
C++ Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear()
Cin.get() и cin.getline() C++
C++ Почему при использовании getline( std::cin, str ) строка считывается не так, как ожидается?
C++ Cin + cin.getline()
C++ Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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]
29 / 7 / 0
Регистрация: 20.08.2011
Сообщений: 601
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>>
Ответ Создать тему
Опции темы

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