gpt4 book ai didi

c++ - 读取组合而不用回车确认?

转载 作者:行者123 更新时间:2023-11-28 07:42:19 25 4
gpt4 key购买 nike

所以基本上我只是想从用户那里读取字符并让我的代码知道当用户键入定义的组合时(例如,CTRL+F - 但没有使用 Enter 确认,例如),它是输入的结尾。我怎样才能做到这一点?我只知道如何使用 enter 读取字符并比较它们的 ASCII...

最佳答案

编辑再次阅读您的问题,我意识到我误解了您的问题。我将保留它,因为它可能对您或其他人仍然有用。


您所要求的与阅读字符没有太大关系。事实上,CTRL 根本不是一个字符。您基本上只是在检查按键。处理这种输入是平台相关的,即使在一个平台上,也会存在多种方法。为 Windows 执行此操作的一种方法是使用 GetAsyncKeyState。此函数将检查指定的键是否正在被按下。请注意,它不会“记住”输入,因此您必须每秒多次检查此功能以注册所有用户输入。

您为函数提供一个参数,指定要检查其状态的键。可以找到所有关键代码的列表 here

例子:

#include <iostream> //for output
#include <windows.h> //for GetAsyncKeyState

int main()
{
while(true)
{
if( GetAsyncKeyState(VK_CONTROL) ) //CTRL-key is pressed
{
if( GetAsyncKeyState( 0x46 ) ) //F-key is pressed
std::cout << "CTRL-F is pressed" << std::endl;
if( GetAsyncKeyState( 0x58 ) ) //X-key is pressed
break;
}
}
std::cout << "CTRL-X was pressed, stopping.." << std::endl;
}

此示例将持续检查 CTRL-F 是否被推送,如果是则写入输出,直到 CTRL-X 被按下。

关于c++ - 读取组合而不用回车确认?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com