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

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

Войти
Регистрация
Восстановить пароль
 
XenHSE
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 18
#1

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

21.02.2013, 14:36. Просмотров 536. Ответов 3
Метки нет (Все метки)

Добрый день. составляю программу в с++, использую getline для считывания строки. Но видимо у меня входной поток не пустой, т.к. в мой массив записывается только терминальный ноль. Подскажите, пожалуйста, существует ли функция(оператор) очищения входного потока?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2013, 14:36     Очищение потока в с++
Посмотрите здесь:

Динамическое очищение массива C++
Очищение потока C++
Создание потока из потока. C++
Очищение памяти в ассемблерной вставке C++
C++ Вызывть метод одного потока из другого потока
Очищение аргументов функции main C++
Правильно ли в приведенном примере реализовано выделение и очищение памяти под двумерный вектор C++
C++ Очищение памяти всего списка сравнений (деструктор)
C++ Выделение и очищение памяти при работе с динамическими строками
C++ Чтение бинарного файла с 16-ричными числами в массив - предоставление и очищение памяти
Очищение памяти (одномерный динамический массив) C++
Очищение динамического массива структур C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5410 / 4806 / 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
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
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     Очищение потока в с++
Ответ Создать тему
Опции темы

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