Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Очищение потока - C++
Есть манипулятор flush. Где применяется это манипулятор в программе?

Динамическое очищение массива - C++
Помогите пжлст) Нужно в программе при определенных обстоятельствах очистить массив. char n;

Очищение памяти в ассемблерной вставке - C++
/* Выделить из строки подстроку указанной длины, начиная с заданной позиции. */ #include <stdio.h> #include <iostream>...

Очищение динамического массива структур - C++
Здравствуйте, Господа. Есть структура, например такая: typedef struct cont1 { long int n; char name; char hoho; }CONTACT; И...

Очищение аргументов функции main - C++
Здравствуйте! Как известно, в функцию main передаются два аргумента: int argc, char** argv Стоит ли использовать delete на argv ради...

Очищение памяти (одномерный динамический массив) - C++
Здравствуйте, у меня возникла проблема с высвобождением памяти при одномерном динамическом массиве: #include <iostream> #include...

3
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.02.2013, 15:01 #2
http://cppstudy.wordpress.com/2009/03/27/cin-get-and-co/

Добавлено через 4 минуты
Можно использовать sync(), но в реализациях под Linux не работает. Мне нравится такая конструкция:
C++
1
while (cin.get() != '\n');
Если перед этим была ошибка в потоке, то: clear().
1
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
21.02.2013, 16:23 #3
http://cplusplus.com/reference/istream/istream/ignore/
1
xtorne21st
интересующийся
304 / 275 / 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;
//...
1
21.02.2013, 17:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2013, 17:54
Привет! Вот еще темы с ответами:

Вызывть метод одного потока из другого потока - C++
Здравствуйте, подскажите пожалуйста, как можно реализовать такую штуку : есть один поток(1), который вызывает метод у обьекта, этот...

Очищение памяти всего списка сравнений (деструктор) - C++
#include <iostream> #include <string> #include <cmath> #include <conio.h> #include <list> using namespace std; class...

Выделение и очищение памяти при работе с динамическими строками - C++
Всем Доброго времени суток! Пожалуйста укажите на ошибку! #ifndef RECEIPT_H #define RECEIPT_H #include <iostream> using...

Удаление/очищение карты в коде, советы по оптимизации (карта до 1 Гб) - C++
Вот куски кода (полный код тут): #include <map> #include <bitset> #include <iostream> using namespace std; unsigned long...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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