【发布时间】:2015-04-24 14:03:39
【问题描述】:
我在 AllocConsole(); 之间有一些 std::cout 和 std::cin 命令;和 FreeConsole();,但是当我按下 ctrl + caps lock 时,控制台只是短暂地闪过,不会 cout 或等待 cin。
这是为调出控制台设置热键的错误方法吗?
if (GetAsyncKeyState(VK_CONTROL) && GetAsyncKeyState(VK_CAPITAL)){ // ctrl + caps
AllocConsole();
....
....
....
....
FreeConsole();
}
感谢您的宝贵时间。
【问题讨论】:
-
看起来应该是热键 (
RegisterHotKey),而不是投票。 -
您必须重新初始化 std::cin 以便它与您创建的控制台窗口相关联。试试
freopen("CONIN$", "r", stdin);