Аватар для eXPonent
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170

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

23.03.2017, 07:25. Показов 21913. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 08.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru