[英]C++ keypress: getch, cin.get?
我有一個循環運行的 Win32 程序。 我希望能夠在等待按鍵時暫停該程序。 無論我使用“任何鍵”還是特定鍵都沒有關系,但我需要讓程序凍結,直到我按下某個鍵。
我想知道我應該使用哪個命令。 我正在使用 Visual C++,編譯器無法識別以下任何命令:
cin.get()
std::cin.get()
getch()
我對 C++ 比較陌生。 我知道在控制台應用程序中這是一個相當簡單的操作(cin.get),但在 Win32 中可能會更加困難。 任何簡單的解決方案或解決方法將不勝感激。 該程序是為單個科學實驗定制的,所以現在我不會擔心解決方案有點拙劣(!)
如果我錯過了我的問題中的任何重要信息,我們深表歉意。
你不應該使用。
你應該使用
#include <iostream>
...
int main()
{
...
std::cin.ignore(); //why read something if you need to ignore it? :)
}'
例子:
#include <iostream>
#include <conio.h>
int main()
{
std::cout << "Press any key to continue . . ." << std::endl;
_getch(); // wait for keypress
}
_getch()
是 C++ 等價於 C getch()
嘗試
#include <iostream>
using namespace std;
char temp;
cin >> temp;
假設您正在尋找 getch 的替代品(它不會在屏幕上回顯)。
如果您使用的是 windows 和 Visual Studio,請嘗試使用 _getch。 這是它的鏈接http://msdn.microsoft.com/en-us/library/078sfkak(v=VS.100).aspx
您應該#include <iostream>
並使用std::cin.get();
我認為getch()
是 C function,但既然你使用的是 C++,那么cin
會更合適。
HWND hwnd = ::GetConsoleWindow();
while (!((::GetForegroundWindow() == hwnd) &&
((::GetKeyState(VK_SPACE) & 0x8000) != 0)))
::Sleep(0);
假設這不是最好的方法,但它解決了我的問題。 將 VK_SPACE 替換為您喜歡的任何其他值。 而且它不是便攜式的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.