@HoShik

Чтение с клавиатуры вне вызова функции?

Есть код:
spoiler
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
#include <stdio.h>
void fillsquare()
{
    char buffer[16],number;
    int EOI=1;
    while(EOI)
        {
            number=getch();
            if(number>=49 && number<=57)
                {
                    buffer[0]=number;
                    outtextxy(50,50,buffer);
                    break;
                }
        }
}
int main()
{
    int g_dr=DETECT, g_mod, result;
    initgraph(&g_dr, &g_mod, " ");
    if((result=graphresult())!=grOk) return(1);
    int ry,rx;
    while(1)
        {
            getmouseclick(WM_LBUTTONDOWN,rx,ry);
            if((rx>=0 && rx<=639) && (ry>=0 && rx<=479)) fillsquare();
        }
    closegraph();
}

По идее должен работать так: если я кликаю в указанной области, вызывается функция чтения цифры с клавиатуры.
Но оно работает и в обратную сторону: можно нажать сначала цифру на клавиатуре, а потом кликнуть, возымеет тот же эффект. В чем заключается проблема?
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
solotony
@solotony
покоряю пик Балмера
"проблема" в том что нажатие клавиши на клавиатуре "кладет" символ в буфер а getch читает из буфера .

вероятно тебе надо очищать буфер перед тем как начинать чтение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы