2013-07-26 95 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()是另一個可以檢測到任何鍵盤按下的功能..