如何在 MacOS 上检测 C++ 中的按键?
How to detect keypress in C++ on MacOS?
我正在写一个作业,需要展示一些事件驱动的编程范例,所以我认为按键检测应该可以正常工作。我已经 google 几个小时了,我已经为 Linux 和 Windows 找到了一些解决方案。不幸的是,我在 Mac。所以,我只提出了跨平台 SDL。但我之前只使用 Python tkinter 处理事件,但我只被允许使用 C++ 进行此作业。而且我不太熟悉 Xcode 和 C++,所以我不知道如何将 SDL 安装到 Xcode 的 C++ 中。另外,我只需要检测按键,所以一些较小的库也应该可以正常工作。我想知道是否有一个图书馆可以实现我的目的。该程序可以很简单 - while(true){ cout << "The key you pressed was " << pressed_key; }.
您只需在 cout
语句上方添加此行。
cin>>pressed_key;
试试这个片段:
SDL_Event e;
while (true)
{
while (SDL_PollEvent(&e) != 0) {
if(e.type == SDL_KEYDOWN)
cout << "The key you pressed was " << SDL_GetKeyName(e.key.keysym.sym) <<endl;
}
}
我正在写一个作业,需要展示一些事件驱动的编程范例,所以我认为按键检测应该可以正常工作。我已经 google 几个小时了,我已经为 Linux 和 Windows 找到了一些解决方案。不幸的是,我在 Mac。所以,我只提出了跨平台 SDL。但我之前只使用 Python tkinter 处理事件,但我只被允许使用 C++ 进行此作业。而且我不太熟悉 Xcode 和 C++,所以我不知道如何将 SDL 安装到 Xcode 的 C++ 中。另外,我只需要检测按键,所以一些较小的库也应该可以正常工作。我想知道是否有一个图书馆可以实现我的目的。该程序可以很简单 - while(true){ cout << "The key you pressed was " << pressed_key; }.
您只需在 cout
语句上方添加此行。
cin>>pressed_key;
试试这个片段:
SDL_Event e;
while (true)
{
while (SDL_PollEvent(&e) != 0) {
if(e.type == SDL_KEYDOWN)
cout << "The key you pressed was " << SDL_GetKeyName(e.key.keysym.sym) <<endl;
}
}