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

Очищение потока в с++ - C++

Восстановить пароль Регистрация
 
XenHSE
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 18
21.02.2013, 14:36     Очищение потока в с++ #1
Добрый день. составляю программу в с++, использую getline для считывания строки. Но видимо у меня входной поток не пустой, т.к. в мой массив записывается только терминальный ноль. Подскажите, пожалуйста, существует ли функция(оператор) очищения входного потока?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.02.2013, 15:01     Очищение потока в с++ #2
http://cppstudy.wordpress.com/2009/0...in-get-and-co/

Добавлено через 4 минуты
Можно использовать sync(), но в реализациях под Linux не работает. Мне нравится такая конструкция:
C++
1
while (cin.get() != '\n');
Если перед этим была ошибка в потоке, то: clear().
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
21.02.2013, 16:23     Очищение потока в с++ #3
http://cplusplus.com/reference/istream/istream/ignore/
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
21.02.2013, 17:54     Очищение потока в с++ #4
Мне лично нравиться прописывать для таких целей макрос типа:
C++
1
#define CIN_FLUSH if (std::cin.peek()) std::cin.get()
И прописывать этот макрос необходимо после использования getline или что-то подобного, что может оставить символ в потоке. Действия макроса заключается в следующем: если поток не пуст (cin.peek() заглядывет в поток, но символ не извлекает), тогда извлечь символ (cin.get() извлеает символ из потока). И теперь можно всё это воспроизвести в коде:
C++
1
2
3
4
//...
std::getline(std::cin, line);
CIN_FLUSH;
//...
Yandex
Объявления
21.02.2013, 17:54     Очищение потока в с++
Ответ Создать тему
Опции темы

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