Getch () не читает ввод - PullRequest
       20

Getch () не читает ввод

0 голосов
/ 27 ноября 2018

Я пытался использовать getch () и kbhit () для чтения ввода пользователя, но он, похоже, не распознает нажатие клавиши.

void main(){
    printf("start\n");
    while (1){
        if (kbhit() == 1){
            printf("in\n");
            int k = getch();
            printf("k: %d\n", k);
        }
    }
}

Этот код печатает «start» и ненапечатать что-нибудь, когда клавиша нажата.Мне не повезло с использованием getch () для чтения и печати хотя бы одного символа без цикла.

1 Ответ

0 голосов
/ 27 ноября 2018

Отправленный код не компилируется!

Существует только 2 действительных подписи для main(), независимо от того, что Visual Studio может разрешить:

int main( void )
int main( int argc, char *argv[] )

Обратите внимание, что они оба возвращают int, а не void

в опубликованном коде отсутствуют необходимые #include операторы

при задании вопроса во время выполнения, как этот вопрос, отправьте [mcve] такмы можем воссоздать проблему.

функция: kbhit() возвращает ненулевое значение (не обязательно 1) при нажатии клавиши.

Предложить:

#include <stdio.h>
#include <conio.h>  // note: this is a nonstandard header
                    // in Windows, so it is not portable
int main( void )
{
    printf("start\n");

    while (1)
    {
        if ( kbhit() )
        {
            printf( "in\n" );
            int k = getch();
            printf( "k: %d\n", k );
        }
    }
}
...