2017-01-02 23 views
-1

我在窗户上使用visual c + +,我想打破代码(如等待一个键被按下(我已经这样做了)),但检测哪个键被按下。
如C#的.ReadKey()c#中的.ReadKey()的C++版本是什么?

+0

应该让你朝着正确的方向前进:https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx – user4581301

+0

在重读时,这可能会更好为您:https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299(v=vs.85).aspx – user4581301

+0

控制台应用程序?你有什么样的主循环或事件循环?您应该显示一些最小的示例代码,或许在您想要执行'ReadKey()'的地方使用'cin'。 – hyde

回答

0

如果该键不是一个特殊的键有点(不按Ctrl,Alt键......),你只需要做到这一点:

char c; 
std::cin >> c; 

或者:

std::string s; 
std::getline(std::cin,s); 

这两个将需要用户按下“Enter”,然后再取回控制权。

如果您不希望用户必须按Enter,请检查本帖子的this answerCapture characters from standard input without waiting for enter to be pressed

+0

但我想这样做,他们不必按下输入事后,就像他们点击一个然后做一些事情,否则,如果他们点击B然后说好做,否则告诉他们,他们没有点击A或B或东西 – NathanProgrammer

+0

@ Kid8:然后做第一个(使用'char c'),这将等待用户按下一个键,'c'将指示你按下了哪一个键。 – jpo38

+1

这是功能的一个可怕的近似值。因为它没有适当的键盘API,所以你需要离开C++标准库。 –