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

Проблема с cin.getline(); - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Dz_ViTo
 Аватар для Dz_ViTo
14 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 51
18.07.2011, 14:32     Проблема с cin.getline(); #1
Есть вопрос по поводу использования cin.getline() после cin:

C++
1
2
3
cin>> n;
char c[buf];
cin.getline(c, buf);
Почему можно ввести данные только один раз, хотя по идее должны вводиться дважды
Не срабатывает, так как я хотел бы, функция cin.getline (), но почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2011, 14:32     Проблема с cin.getline();
Посмотрите здесь:

cin И getline C++
C++ getline(cin,a);
getline(cin, str) и cin>> C++
getline(cin, ); C++
cin.getline и cin.ignore C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
18.07.2011, 14:39     Проблема с cin.getline(); #2
Dz_ViTo, А цикл где чтобы дважды вводилось? После cin.getline поставьте cin.get(), cin.clear(). Или после ввода n. Точно не помню, но где-то нужно поставить.
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
18.07.2011, 14:41     Проблема с cin.getline(); #3
Dz_ViTo, перед std::getline

C++
1
std::cin.ignore(std::cin.rdbuf()->in_avail());
Добавлено через 52 секунды
или

C++
1
std::cin.ignore(std::numeric_limits <std::streamsize>::max(), '\n');
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
18.07.2011, 14:42     Проблема с cin.getline(); #4
C++
1
2
3
(cin>> n).ignore();
char c[buf];
cin.getline(c, buf);
Dz_ViTo
 Аватар для Dz_ViTo
14 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 51
18.07.2011, 14:54  [ТС]     Проблема с cin.getline(); #5
Спасибо, cin.clear() и (cin>> n).ignore() помогло.
Кстати cin.getline() хавает "\n" после ввода n, поэтому второй раз ввод вроде как и был
Yandex
Объявления
18.07.2011, 14:54     Проблема с cin.getline();
Ответ Создать тему
Опции темы

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