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

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

23.03.2017, 07:25. Показов 21072. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru