Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/103: Рейтинг темы: голосов - 103, средняя оценка - 4.69
 Аватар для eXPonent
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170

Полностью очистить буфер ввода

23.03.2017, 07:25. Показов 21807. Ответов 44

Студворк — интернет-сервис помощи студентам
Требуется, в конце программы, сделать небольшое ожидания
для чтения того как отработала программа
Написал:
C++
1
2
cin.ignore(cin.rdbuf()->in_avail());
cin.get();
Но если пользователь вводил несколько Enter-oв во время работы проги
тогда cin.rdbuf()->in_avail() возвращает неверное значение, из за чего прога моментально закрывается

Как исправить сие проблему, от произвольного ввода
или по другому, как полностью очистить буфер ввода
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2017, 07:25
Ответы с готовыми решениями:

Как очистить буфер клавиатуры?
Есть меню в котором я двигаю стрелочку кнопками вверх и вниз и нажимаю ентер. while (true) { if (ti > 0) ti--; ...

Очистить буфер функции после его обработки
Добрый день. Имеется некоторое приложение написанное на Delphi Исходных кодов нет. Описаны функции которые необходимо реализовать в...

Как очистить поток ввода?
std::istringstream iss(s1); idd>>a; iss.clear();; s1=s3; iss>>b надо чтоб s3 в b записалось, громадное число...

44
25.03.2017, 17:40  [ТС]
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от nd2 Посмотреть сообщение
Это не то предложение. У него преподаватель такую проверку придумал. Предложи вместо его костыля, свой не костыль. Удивительно, как он ещё нашёл такой костыль.
Не нашел, а сам придумал,
вот только бы хотелось заменить:
cin.get();
на буфер копирования,
что бы вся эта абракадабра не выводилась в консоль в это время
а была в неком другом виртуальном cmd
В числе clock()+100
число 100 выбрано методом тыкаб и для очень больших программ
те что будут выполняться 10-15 минут не известно сработает или нет
но моя программа выполняется 40 секунд
Возможно можно вывести какую нить зависимость между этими числами,
в плане времени работы проги и этим числом 100,
но это уже кажется большим маразмом

0
nd2
25.03.2017, 17:47

Не по теме:

Цитата Сообщение от eXPonent Посмотреть сообщение
Не нашел, а сам придумал,
Нашёл решение. Решение, которое не сможешь объяснить.

0
 Аватар для eXPonent
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
25.03.2017, 18:10  [ТС]
В плане не могу объяснить?
вполне могу
cmd накапливает символы, в конце программы вызывается for
он считывает все символы, пока не дойдет до ввода от пользователя и ожидает ввода
за это время, точно проходит одна секунда
Пользователь нажимает любую кнопку, программа завершается
Если вы не заметили, я подобный метод косвенно, предлагал выше

Добавлено через 3 минуты
Вот редлагал обращение с буфером, тогда и об времени подумал:
Цитата Сообщение от eXPonent Посмотреть сообщение
Добавлено через 2 часа 7 минут
а есть какое то обращение с буфером?
Добавлено через 24 секунды
да можно cin.get() с ним связать
0
 Аватар для eXPonent
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
11.05.2017, 22:44  [ТС]
Цитата Сообщение от eXPonent Посмотреть сообщение
for(clock_t i(clock()+100); i > clock(); cin.get());
Цитата Сообщение от nd2 Посмотреть сообщение
Это не то предложение. У него преподаватель такую проверку придумал. Предложи вместо его костыля, свой не костыль. Удивительно, как он ещё нашёл такой костыль.
Цитата Сообщение от nd2 Посмотреть сообщение
Нашёл решение. Решение, которое не сможешь объяснить.
Найди автора этого костыля, я хочу прочитать его статью и узнать, почему я не наткнулся на его статью когда искал в гугле, и соответственно поблагодарить)

и что насчет моего вопроса:
Цитата Сообщение от eXPonent Посмотреть сообщение
Добавлено через 2 часа 7 минут
а есть какое то обращение с буфером не отображая символы в консоль?
т.е. стирая их
Добавлено через 24 секунды
и можно cin.get() с ним связать?
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
10.10.2018, 19:31
Если еще актуально...
C++
1
2
3
4
5
6
7
8
#include <Windows.h>
//...
 
//Очищаем консольный буфер ввода:
hStdin = GetStdHandle(STD_INPUT_HANDLE);
FlushConsoleInputBuffer(hStdin);
 
//Вводим данные от пользователя, например cin.get()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2018, 19:31

Как очистить поток ввода
cout &lt;&lt; &quot;Введите ряд целых чисел произвольной длины\n&quot;; vector&lt;int&gt; vecint; int sum = 0; for (int i; cin &gt;&gt; i; ) ...

Оъясните как работает консольный буфер ввода
Windows поддерживает &quot;очередь сообщений&quot; для каждой программы, работающей в данный момент в системе Windows (значит и для консоли). Когда...

Очистить буфер сокета
имеется клиент-сервер,клиент отправляет сообщение принятое std::cin и пересылает серверу,тот в свою очередь выводит его на экран,так вот в...

Как очистить буфер..?
Извините, за вопрос из облатси VBA, но там в конфе глухо, да и проблема не только VBA'шная... Вчера я спросил о включении NumLock, не...

Очистить буфер обмена
Подскажите как очистить буфер обмена на XE5 андроид. В VCL было ClipBrd,а тут не могу найти.


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

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru