Форум программистов, компьютерный форум CyberForum.ru

очистка буфера клавиатуры как это сделать? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
01.05.2012, 19:23     очистка буфера клавиатуры как это сделать? #1
как очистить буфер клавиатуры?в программе только первое нажатие запоминается!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <conio.h>
#include <stdio.h>
#include <graphics.h>
void Draw ( int x, int y, int color )
{
setfillstyle ( 1, color ); // сплошная заливка, цвет color
bar ( x, y, x+15, y+15 ); // залитый прямоугольник
}
main()
{
int x, y,f,a,b,q[100],i=0,z=0; // координаты квадрата
initwindow (1024, 600); // открыть окно для графики
setfillstyle(1, COLOR(0,0,0)); // сплошная заливка, синий цвет
bar (0,0 , 799, 799); // залить фон
x = 0; y = 80; // начальные координаты квадрата
setcolor (15);
 
rectangle(350,40,750,440);//дешифратор
line(450,40,450,440);
line(650,40,650,440);
settextstyle(1,0,5);
outtextxy(500,100, "DC");
settextstyle(4,0,1);
outtextxy(510,200, "<2-4>");
line(180,100,350,100);
line(200,200,350,200);
settextstyle(0,0,0);
a=0;b=180;
while (q[i]!=27)
{
q[i]=getch();
switch(q[i])
{ 
//---------------------------------------------------------         
case 49: while ( x + 20 < 350 ) // пока не коснулся границы окна
{
if ( kbhit() ) // если нажата клавиша...
if ( q[i] == 27 ) break; // если Esc, выход из цикла
outtextxy (x, y, "0"); // рисуем желтый квадрат
outtextxy (a, b, "0");
delay ( 20 ); // смотрим на него (задержка)
Draw ( x, y, COLOR(0,0,0) ); // стираем
Draw ( a, b, COLOR(0,0,0) ); // стираем
x ++; a++;// перемещаем
} break;
//-----------------------------------------------------------
case 50: while ( x + 20 < 350 ) // пока не коснулся границы окна
{
if ( kbhit() ) // если нажата клавиша...
if ( getch() == 27 ) break; // если Esc, выход из цикла
outtextxy (x, y, "0"); // рисуем желтый квадрат
outtextxy (a, b, "1");
delay ( 20 ); // смотрим на него (задержка)
Draw ( x, y, COLOR(0,0,0) ); // стираем
Draw ( a, b, COLOR(0,0,0) ); // стираем
x ++; a++;// перемещаем
} break;
//-------------------------------------------------------------
case 51: while ( x + 20 < 350 ) // пока не коснулся границы окна
{
if ( kbhit() ) // если нажата клавиша...
if ( getch() == 27 ) break; // если Esc, выход из цикла
outtextxy (x, y, "1"); // рисуем желтый квадрат
outtextxy (a, b, "0");
delay ( 20 ); // смотрим на него (задержка)
Draw ( x, y, COLOR(0,0,0) ); // стираем
Draw ( a, b, COLOR(0,0,0) ); // стираем
x ++; a++;// перемещаем
} break;
//---------------------------------------------------------------
case 52: while ( x + 20 < 350 ) // пока не коснулся границы окна
{
if ( kbhit() ) // если нажата клавиша...
if ( getch() == 27 ) break; // если Esc, выход из цикла
outtextxy (x, y, "1"); // рисуем желтый квадрат
outtextxy (a, b, "1");
delay ( 20 ); // смотрим на него (задержка)
Draw ( x, y, COLOR(0,0,0) ); // стираем
Draw ( a, b, COLOR(0,0,0) ); // стираем
x ++; a++;// перемещаем
} break;
}
i++;
}
int l=getch();
if (l==55) outtextxy (10, 10, "!!!!!!!!!!!!!!!!!!!!!!!!!!");
getch();
 // закрыть окно для графики
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 19:23     очистка буфера клавиатуры как это сделать?
Посмотрите здесь:

Очистка буфера! C++
Нужно произвести считывание пути к файлу с клавиатуры. Причём сделать это в конструкторе. Всё остальное корректно работает. C++
C++ _TCHAR szTestString[] = как сделать тут ввод с клавиатуры и возможно ли это
Очистка буфера клавиатуры C++
Очистка буфера kbhit() C++
Запись в файл, очистка буфера ввода C++
Очистка буфера ввода при работе с cin C++
C++ Простая программа работы с классами и строками, очистка буфера

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

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

Текущее время: 03:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru