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

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

23.03.2017, 07:25. Показов 22243. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. Сразу отвечу: А в PvP с ним. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru