如何等待特定的击键?
Posted
技术标签:
【中文标题】如何等待特定的击键?【英文标题】:How to wait for a specific keystroke? 【发布时间】:2017-03-20 02:26:45 【问题描述】:我对 C++ 有点陌生,所以请原谅我有点小白。
有什么功能可以让控制台暂停直到按下特定键?
例如:
#include <iostream>
using namespace std;
int main()
int i = 0;
if (specific key pressed)
i = 1;
else if (other key pressed)
i = 2;
cout << i << endl;
return 0;
如果按下右键,控制台应该输出 1,如果按下另一个键,则输出 2。
【问题讨论】:
您所说的“特定键”是指特定的字符,还是像箭头键这样没有视觉表现的东西?int i - 0;
毫无意义。请在此处停止“键入”代码,而是从您的 IDE 中粘贴它。
在不了解您的控制台的情况下,我们无法知道它是否可以做到这一点,或者如果可以,如何做到这一点。
取决于平台。如果是 Windows,请查看这些线程 ***.com/questions/24708700/… ***.com/questions/2067893/c-console-keyboard-events
【参考方案1】:
您尝试做的事情有点复杂,C++ 利用 cin 流,将控制台的输入馈送到您的程序中。作为按键事件,操作系统将处理并且会因操作系统而异。所以使用这样的东西需要用户按回车键才能让程序接收输入。
char key;
std::cin >> key;
if (key == 'a')
std::cout << 1;
else
std::cout << 2;
在这里找到一些答案How to handle key press events in c++
【讨论】:
以上是关于如何等待特定的击键?的主要内容,如果未能解决你的问题,请参考以下文章
如何对 NSUndoManager+UITextInput 的击键进行分组
如何在 C# 中正确捕获用户的击键,即尊重 SHIFT 键等