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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 95, средняя оценка - 4.71
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
#1

Очистка потока ввода && строки - C++

26.02.2013, 23:04. Просмотров 13162. Ответов 25
Метки нет (Все метки)

как вобще грамотно очистить поток после ввода множества всяких вещей с клавиатуры?
если совсем не чистить то остаются нажатия клавиши enter, если применять такой код
C++
1
2
3
cin.clear();
while(cin.get() != '\n');
cin.get();
в конце каждой функции в программе, где происходит ввод, то в итоге пользователю приходится 4-5 лишних раз давить enter после ввода чего либо, т.е. эффект обратный. как реализовать очистку потока вывода грамотно?

и еще, есть функция
C++
1
2
3
4
5
6
7
8
void initialize_values(goods *db)
{
    for (int i = 0; i < base_size; i++) {
        strcpy(db[i].value, '\0');
        db[i].cost = 0;
        db[i].quantity = 0;
    }
}
инициализирует массив записей при старте программы. в дальнейшем предполагается использовать db[i].value как критерий существования записи: если строка нулевая, то запись пустая и её можно заполнить. но у меня почему то не получается использовать if(!db[i].value) { ...........}, он просто не срабатывет. причем если value инициализировано как strcpy(db[i].value, '\0') ,то программа выдает просто segmentation vault и не работает, а если strcpy(db[i].value, "\0"), то компилируется без ошибок, но опять же if(!db[i].value) { ...........} не работает. в чем ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2013, 23:04     Очистка потока ввода && строки
Посмотрите здесь:

Проблема с проверкой условия цикла for( int i=2; !((n%i||d%i)&&!(n%i&&d%i))==0 ; i++) C++
функции && строки C++
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& C++
C++ Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? C++
Выделение памяти для буффера, под std::istream& operator>>(std::istream &, String &) C++
Очистка потока ввода C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
28.02.2013, 01:49     Очистка потока ввода && строки
  #21

Не по теме:

все претензии к Прате

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
28.02.2013, 21:05  [ТС]     Очистка потока ввода && строки #22
Цитата Сообщение от xtorne21st Посмотреть сообщение
C++
1
#define CIN_FLUSH if (std::cin.peek()) std::cin.ignore()
объясните что это пожалуйста и как юзать и как работает, нужно просто добавить этот макрос или еще в коде вызывать что либо?

Добавлено через 29 минут
разобрался с макросом, да еще и ошибочку в коде нашел, там динамическая память не очищалась в одном месте. с таким макросом поприятнее, но для выхода все еще нужно ввести q и дважды нажать enter
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.02.2013, 21:25     Очистка потока ввода && строки #23
12 пост прочли?
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
02.03.2013, 21:06  [ТС]     Очистка потока ввода && строки #24
благодарю, убрал и заработало!
sWINo_BACK_LAN
3 / 3 / 0
Регистрация: 30.03.2016
Сообщений: 20
29.11.2016, 17:57     Очистка потока ввода && строки #25
cin.sync();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2017, 05:41     Очистка потока ввода && строки
Еще ссылки по теме:

Цикл и строки, очистка потока ввода C++
Очистка потока ввода C++
Friend ostream& operator<<(ostream& stream, CArr& obj); C++
Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;) C++
C++ Порядок вычисления: операторы «|» и «||», «&» и «&&»

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

Или воспользуйтесь поиском по форуму:
game1progg
31 / 1 / 0
Регистрация: 07.01.2016
Сообщений: 40
27.01.2017, 05:41     Очистка потока ввода && строки #26
а как насчет:
C++
1
2
3
4
5
#include<algorithm>
 
void clean_screen(){
    system("cls");
}
Yandex
Объявления
27.01.2017, 05:41     Очистка потока ввода && строки
Ответ Создать тему
Опции темы

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