2013-07-26 65 views
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)和命中在控制台窗口中输入表会产生。但是我想在用户输入数字时立即显示结果。用户不应该被要求击中输入

如何在没有用户击打的情况下处理输入输入

+2

我们需要更多信息。 C++本身没有按键的概念。 – chris

+0

你可以看看[this](http://www.cplusplus.com/forum/general/29137/) – NREZ

+0

这是一个控制台和平台功能。不知道你使用的是什么控制台和/或平台,我们甚至不知道它是否可能。一些控制台在你输入之前不会发送任何按键。 (尽管你今天很难找到任何这些东西。) –

回答

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键

+0

@losif你可以用我的代码给出一个例子 – MAK

+1

使用我的例子。而不是'myVar'使用'number',如果'isdigit(number)'返回'false',则应该返回,而不是执行其余的代码。 –

+0

并用'number = getch()'替换'cin >>数字'' –

0

在VC++可以实现相同的逻辑为其中所述特定输入(VAR)被赋予的项目的引发LostFocus(),但在C++中的CIN取值从控制台回车键按压的基础上,如果您不按回车键,然后该值不会从控制台传递到输入没有Enter键的pgm

1

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