我正在编写自定义控制台程序。我想让它看起来像一个真实的。所以我想用keypress事件绑定一些动作。
例如,当按下向上箭头时,应向用户显示先前执行的命令。我知道SDL。但我认为它不是标准库,是吗?
如果还有其他选择,包括在标准CPP库中,请告诉我。
感谢。
答案 0 :(得分:5)
您无法在标准库中找到任何内容。这完全取决于平台。在Windows中,您可以使用GetAsyncKeyState
等函数来获取键盘上键的状态。
答案 1 :(得分:0)
你所描述的不是一个“控制台程序”本身,而是一个shell。 此外,您不希望处理传入事件,而只是想从命令行中读取。
要做到这一点,有各种方法。 Windows有ReadConsoleInput。 更灵活的方法是使用getline。
int main ()
{
string mystr;
cout << "What's your name? ";
getline (cin, mystr);
return 0;
}
为了让你工作特别,只需将以前的输入存储在std::vector<string>
或类似的内容中。
要从控制台读取原始输入(不带回声),您应该使用_getch()