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

Обработка нажатия клавиши без подтвержения enter - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ FirstBlood http://www.cyberforum.ru/cpp-beginners/thread269539.html
Добрый вечер, форумчане. добрался до winapi :D . как говорится без практики ни куда. так вот. после внимательного прочтения, попробовал написать в VisuatStudio стандартную прогу helloworld. короче вод код: #include <windows.h> int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
C++ В чем ошибка Странно выдает ошибку на это, ничего не понимаю, почему? char * text; *text = 'h'; *text = 'o'; *text = 'u'; *text = 's'; *text = 'e'; Выдает Необработанное исключение в "0x004013dc" в "r.exe": 0xC0000005: Нарушение прав доступа при записи "0x00000014". http://www.cyberforum.ru/cpp-beginners/thread269534.html
помогите сделать!!!! C++
Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 р., за корову - 5 р., а за теленка - 0,5 р., если на 100 р. надо купить 100 голов скота? Нужно сделать через 4 цикла А*10(первый цикл)+Б*5(второй цикл)+С*0,5(третийцикл) А+Б+С=100(четветый цикл)-если это выполняется то правильно... ПОМОГИТЕ СДЕЛАТЬ!!!!!
Посимвольная проверка строк без массива C++
Всем доброго времени суток, собственно, сабж: Нужно проверить 2 строки посимвольно на наличие одинаковых элементов, но без использования массива. Я думаю, что есть стандарная функция C++. Если кто знает, буду благодарен)
C++ Использование переменной из другого файла http://www.cyberforum.ru/cpp-beginners/thread269502.html
У меня две формы. В первой присваивается переменной значение веденное пользователем, а во второй форме мне нужно использовать это значение. Как это сделать??? А то я уже всё перепробывал... Зарание благодарен!
C++ Чтение бинарника по биту Всем привет! Уважаемые, помогите пожалуйста! Есть бинарный файл. Из него надо получить число, закодированное, например, в старших трех битах второго байта. Как это реализовать? подробнее

Показать сообщение отдельно
templton
0 / 0 / 0
Регистрация: 30.12.2010
Сообщений: 14

Обработка нажатия клавиши без подтвержения enter - C++

03.04.2011, 19:52. Просмотров 2956. Ответов 10
Метки (Все метки)

Здравствуйте, уважаемые программисты. Подскажите в чем проблема. Вывожу рисунок посредством команды dos в языке turbo c. Необходимо зациклить вывод картинки до нажатия клаши esc. При нажатии стрелки вправво выполнить некую другую команду.
Короче, надо обработать нажатые символы на клавиатуре, но без подтвердения клавишей enter.
Вот, что получилось у меня. Жирным большим шрифтом выделил мое зацикливание, но оно требует подтверждения клавишей enter.
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include <math.h>
#include <stdio.h>
#include <dos.h>
#include <bios.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
/*“бв**®ўЄ* Ја*дЁзҐбЄ®Ј® ०Ё¬**/
void set_mode(int mode)
{
_AH=0x00;
_AL=mode;
geninterrupt(0x10);
}
 
/*“бв**®ўЄ* Єгаб®а**/
void goto_xy(int x, int y)
{
_AH=0x02;
_DH=y;
_DL=x;
geninterrupt(0x10);
}
 
/*ЏҐз*вм бЁ¬ў®«**/
void print_symbol(char str, char atr)
{
_AH=0x09;
_AL=str;
_CX=1;
_BL=atr;
geninterrupt(0x10);
}
 
/*‚лў®¤ ЇЁЄбҐ«п x,y*/
void paint_pixel(int x, int y, int color)
{
_AH=0x0C;
_AL=color;
_CX=x;
_DX=y;
geninterrupt(0x10);
}
 
/*Їа®аЁб®ўЄ* «Ё*Ё©*/
void paint_line(int x1,int y1, int x2, int y2, int color)
{
int x;
int y;
for (x=x1;x<=x2;x=x+1)
{
if (x2==x1) x1=0.1;
y=(abs(y2-y1))*(abs(x-x1))/(abs(x2-x1))+y1;
paint_pixel(x,y,color);
}
}
 
 
 
/*Їа®аЁб®ўЄ* «Ё*Ё©*/
void paint_line_x(int x1,int y1, int x2, int y2, int color)
{
int x;
int y;
int p;
if (x2<=x1)
{
p=x1;x1=x2;x2=p;
p=y1;y1=y2;y2=p;
}
for (x=x1;x<=x2;x=x+1)
{
y=(y2-y1)*(x-x1)/(x2-x1)+y1;
paint_pixel(x,y,color);
}
}
 
void paint_line_y(int x1, int y1, int x2, int y2, int color)
{
int x;int y;
if (y2<=y1)
{
x=y1;y1=y2;y2=x;
x=x1;x1=x2;x2=x;
}
for (y=y1;y<=y2;y++)
{
x=(y-y1)*(x2-x1)/(y2-y1)+x1;
paint_pixel(x,y,color);
}
}
 
 
/*®вбвгЇ ®в Єа*Ґў нЄа****/
int shiftx=10;
int shifty=10;
/*‡*¬Ґ¤«Ґ*ЁҐ бЄ®а®бвЁ*/
int stop=5000;
 
int a[10][10][2];
int obh[20];
int x1,y1,x2,y2;
int i,j,k,t;
 
 
 
 
main()
{
union REGS in, rr;
set_mode(19);
 
 
 
for (;;)
{
rr.h.ah=1;
 
t=1;
for (i=1;i<=7;i++)
{
t=1;
for (j=1;j<=9;j++)
{
x1=a[i][obh[t]][1];y1=a[i][obh[t]][2];
x2=a[i][obh[t+1]][1];y2=a[i][obh[t+1]][2];
paint_line_x(x1,y1,x2,y2,7);
paint_line_y(x1,y1,x2,y2,7);
 
t=t+2;
 
 
if ((j==6) && (i==4))
{
j=20;
t=t+2;
x1=a[i][1][1];y1=a[i][1][2];
x2=a[i][4][1];y2=a[i][4][2];
paint_line_x(x1,y1,x2,y2,7);
paint_line_y(x1,y1,x2,y2,7);
}
 
}
 
 
delay(30000);
t=1;
for (j=1;j<=9;j++)
{
x1=a[i][obh[t]][1];y1=a[i][obh[t]][2];
x2=a[i][obh[t+1]][1];y2=a[i][obh[t+1]][2];
paint_line_x(x1,y1,x2,y2,0);
paint_line_y(x1,y1,x2,y2,0);
 
t=t+2;
 
 
if ((j==6) && (i==4))
{
j=20;
t=t+2;
x1=a[i][1][1];y1=a[i][1][2];
x2=a[i][4][1];y2=a[i][4][2];
paint_line_x(x1,y1,x2,y2,0);
paint_line_y(x1,y1,x2,y2,0);
}
 
}
 
 
 
}
 
intdos(&rr,&rr);
if (rr.h.al==27) break;
 
}
 
 
}
P.s. Более говенного языка, чем си этот в жизни не видел и не слышал. Доходило до того, что меняю пару строк в этом файле и картинка выводиться перестает. Начинаю через пару часов биться головой о стену, перенабираю вручную всеь код - работает.
Или задам массив а[7][7][2] - хрен, не работает, хотя использую именно столько данных, Увеличиваю размерность - все начинает работать. Причем переставл работать массив obh[], который вообще никаким боком... Короче, уважуха всем тем, кто это дерьмо под названием си увеет разобрать!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru