我写了一个简单的C ++程序,它显示了一个数学表:
#include <iostream>
using namespace std;
int main()
{
int number, result, var=0;
cout << "Enter number to generate table:";
cin >> number;
while (var < number*10)
{
result = number + var;
cout << "\n" << result;
var += number;
}
cin>>var;
return 0;
}
因此,当用户键入一些数字(例如22)并在控制台窗口中点击 Enter 时,表格将生成。但我希望在用户输入数字时立即显示结果。不应要求用户点击 Enter 。
如果没有用户点击 Enter ,如何处理输入?
答案 0 :(得分:3)
getch()
的 <conio.h>
,输出已按下的单键的ASCII代码。您可以在之后处理返回的值。像这样:
#include <conio.h>
#include <ctype.h>
int main()
{
int myVar = 0;
myVar = getch();
if (isdigit(myVar))
{
myVar = myVar - '0';
}
return 0;
}
缺点是getch()
只会读取1个键。
答案 1 :(得分:1)
对于没有Enter键的输入,你可以在conio.h中使用getch()函数。 它需要一个输入字符。如果要在控制台上显示(回显)输入,请使用getche() kbhit()是另一个可以检测任何键盘按下的功能..
答案 2 :(得分:0)
在VC ++中,您可以为给定特定输入(var)的项目的LostFocus()实现相同的逻辑,但在C ++中,cin根据Enter键按下控制台中的值,如果您不按Enter键,然后该值不会从Console传递到pgm