我正在尝试一些练习题,这是其中之一。我想我应该使用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;
}
答案 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;
}