我在使用C按键时遇到麻烦

时间:2018-12-16 13:54:30

标签: c

我正在尝试一些练习题,这是其中之一。我想我应该使用getch来接收按键,而无需用户按下Enter键,但是我不知道如何执行此操作。请帮忙。

问题: 编写一个程序,计算直到用户按下“!”键之前按下的键数。     当。。。的时候 '!'按下该程序应在屏幕上显示按键计数,然后终止。

我的代码:

#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 :(得分:2)

打开编译器警告,并注意它们。

bash

除了上面的错误,需要输入ENTER,您的程序才能按原样工作。

答案 1 :(得分:0)

下面的代码无需按ENTER键即可工作。但不会在终端中显示任何输入。但是会显示在按下!之后按下了多少键。

#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;
}

答案 2 :(得分:0)

#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;
}