2

我编写了一个显示数学表的简单 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

4

3 回答 3

3

getch()from ,输出被按下的单个键<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 个 key

于 2013-07-26T06:09:26.980 回答
1

对于没有 Enter 键的输入,您可以使用 conio.h 中的 getch() 函数。它需要一个输入字符。如果您想在控制台上显示(回显)输入,请使用 getche() kbhit() 是另一个可以检测任何键盘按下的函数。

于 2013-07-28T19:00:02.717 回答
0

在 VC++ 中,您可以为给定特定输入(var)的项目的 LostFocus() 实现相同的逻辑,但在 C++ 中,如果您不按 Enter 键,则 cin 根据 Enter 键从控制台获取值,则该值不会从控制台传递到 pgm

于 2013-07-26T06:09:53.920 回答