У меня проблемы с получением нажатий клавиш в C - PullRequest
0 голосов
/ 16 декабря 2018

Я пробую некоторые практические вопросы, и это один из них.Я думаю, что я должен использовать getch для того, чтобы получить нажатие клавиши без нажатия пользователем клавиши ввода, однако я понятия не имею, как это сделать.Пожалуйста, помогите.

Вопрос: Напишите программу, которая считает количество нажатых клавиш, пока пользователь не нажмет «!».ключ.Когда '!'нажата программа должна отобразить счетчик нажатий клавиш на экране и затем завершиться.

Мой код:

#include <stdio.h>
#include <stdlib.h>

int main()
    {
int i, counter;
i = 0;
counter = 0;
char input;
while (i==0)
{
    scanf("%c", &input);
    if (input == "!");
    {
        i = 1;
    }
    counter ++;
}
printf("Keystrokes = %d", counter);
return 0;
}

Ответы [ 3 ]

0 голосов
/ 16 декабря 2018

Код ниже будет работать без нажатия клавиши ВВОД.Но не будет отображать входные данные в терминале.Но покажет сколько нажатых клавиш после нажатия !.

#include <stdio.h>
#include <conio.h>

int main()
{
    int i, counter;
    i = 0;
    counter = 0;
    while(1)
    {
        if(getch()=='!')
            break;
        counter++;
    }
    printf("Keystrokes = %d", counter);
    return 0;
}
0 голосов
/ 16 декабря 2018
#include <stdio.h>
#include <stdlib.h>

int main(){
    int counter;
    counter = 0;
    char input = '0';

        while (input != '!'){
            scanf("%c", &input);
            if(input != '\n')
                counter ++;
        }

    printf("Keystrokes = %d", counter);
    return 0;
}
0 голосов
/ 16 декабря 2018

Включите предупреждения вашего компилятора и учитывайте их.

if (input == "!");
//           ^ ^ ^
if (input == '!')

Помимо ошибок, указанных выше, и необходимости ввода ENTER ваша программа должна работать как есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...