Как очистить буфер клавиатуры в c
Перейти к содержимому

Как очистить буфер клавиатуры в c

  • автор:

Как очистить буфер scanf() ?

Author24 — интернет-сервис помощи студентам

Мне нужно, чтобы scanf() вызывался до тех пор, пока не будет введено целое число, но происходит зацикливание.

1 2 3 4
while (scanf("%d", &n) != 1 ) { printf("Error\nInput n: "); }

fflush(stdin) — не помогает
scanf( «%*[^\n]» ); — помог, но я не понимаю, как это работает.

1 2 3 4 5
while (scanf("%d", &n) != 1) { scanf("%*[^\n]"); printf("Error\nInput n: "); }

Есть ли более простой способ очистить буфер?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

Как очистить буфер com-порта?
В этой программе я считываю данные с lpt-порта и в зависимости от полученных значений, посылаю.

Как очистить буфер обмена?
вот собственно и весь вопрос Заранее спасибо

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

Как очистить буфер клавиатуры в c

Пользователь

Регистрация: 05.11.2009

Сообщений: 41

Очистка буфера ввода консоли

При вводе в буфере консоли остаётся мусор — последняя введенная строка. fflush(stdin) не помогает очистить.
Программа эмуляция бд — ввожу новую запись пять строк и одно число. Потом пытаюсь редактировать и в первый ввод scanf или gets попадает то что вводил до этого. Вроде проблему решило fseek(stdin, 0, SEEK_END) но я не понимаю почему так происходит?

rewind

Однако, в отличие от fseek этого, rewind очищает индикаторы ошибок для потока и индикатора конца файла. Кроме того, в отличие от fseek этого, rewind не возвращает значение, указывающее, был ли указатель успешно перемещен.

Чтобы очистить буфер клавиатуры, используйте rewind поток stdin , связанный с клавиатурой по умолчанию.

Если поток является NULL указателем, вызывается обработчик недопустимых параметров, как описано в разделе «Проверка параметров». Если выполнение разрешено продолжать, эта функция возвращается и errno имеет значение EINVAL .

Дополнительные сведения об этих и других кодах ошибок см. в разделе errno , _doserrno _sys_errlist и _sys_nerr .

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью «Глобальное состояние» в CRT.

Требования

Маршрут Обязательный заголовок
rewind

Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Пример

// crt_rewind.c /* This program first opens a file named * crt_rewind.out for input and output and writes two * integers to the file. Next, it uses rewind to * reposition the file pointer to the beginning of * the file and reads the data back in. */ #include int main( void ) < FILE *stream; int data1, data2; data1 = 1; data2 = -37; fopen_s( &stream, "crt_rewind.out", "w+" ); if( stream != NULL ) < fprintf( stream, "%d %d", data1, data2 ); printf( "The values written are: %d and %d\n", data1, data2 ); rewind( stream ); fscanf_s( stream, "%d %d", &data1, &data2 ); printf( "The values read are: %d and %d\n", data1, data2 ); fclose( stream ); >> 

Выходные данные

The values written are: 1 and -37 The values read are: 1 and -37 

Как очистить буфер клавиатуры ?

прошу описать по шагово как очистить буфер обмена и не писать в темах хрень всякую к примеру «гугл в помощь » или еще как писать только по существу
а теперь к делу мне сказали что у меня буфер обмена забит и его нужно очистить а как это сделать ХЗ при зажатии любой клавиши и прокрута мыши то у меня пищит системный блок и комп на несколько секунд тупит как очистить буфер клавиатуры ?

Дополнен 11 лет назад

до чего люди Блеать тупые скал херню не писать

Голосование за лучший ответ

«Буфер клавиатуры»? Переверните клавиатуру и постучите по ней. Буфер очистится.

Кто тебе сказал, у того и спроси.

Буфер клавиатуры или буфер обмена? Это разные вещи и ты их путаешь.
Буфер клавиатуры забивается только при ненормальной работе ОС, его очистка тебе ничего не даст — он снова забьется. К тому же, насколько я помню это дело, там надо напрямую из порта клавы читать — современные ОС тебе так разговляться не позволят.
Переполнение буфера обмена — я такого не слышал. Ну скопируй туда чего-нибудь маленькое.

Дружок, буфер обмена очищать не надо. Он сам очищается при перезагрузке ОС или выключении компа.

Похожие вопросы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *