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

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

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

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

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

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

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

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

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

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

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

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

Очищение памяти всего списка сравнений (деструктор) - 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...

Чтение бинарного файла с 16-ричными числами в массив - предоставление и очищение памяти - C++
Программа вылетает, переполнение стека.. Имеется бинарный файл с 16-ричными числами, по 40 штук в строке вида "4d" через пробел. Пытаюсь...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
21.02.2013, 16:23     Очищение потока в с++ #3
http://cplusplus.com/reference/istream/istream/ignore/
xtorne21st
интересующийся
303 / 274 / 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     Очищение потока в с++
Ответ Создать тему
Опции темы

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