Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C+读取箭头键+; 我正在编写一个C++应用程序,如果按下了箭头键,就必须读取。 我只找到了一些只在Windows上工作的函数。_C++_Arrow Keys - Fatal编程技术网

使用C+读取箭头键+; 我正在编写一个C++应用程序,如果按下了箭头键,就必须读取。 我只找到了一些只在Windows上工作的函数。

使用C+读取箭头键+; 我正在编写一个C++应用程序,如果按下了箭头键,就必须读取。 我只找到了一些只在Windows上工作的函数。,c++,arrow-keys,C++,Arrow Keys,你有这样的问题,因为你只是问了一个错误的问题。如果您的应用程序是一个命令行工具,并且可以从终端访问,那么就不可能知道此时按下了哪些键,因为终端可能远离运行应用程序的机器,而哪个键更重要,终端没有理由向您发送箭头键,因为终端可以使用箭头键进行文本导航 因此,您可以搜索如何使终端向您发送按键。不是每个终端都支持它,但是,我认为,现代操作系统中的大多数现代终端都支持它 如果您有一个本地运行的gui应用程序,并且假设您通过插入的键盘控制它。然后,您应该搜索gui工具包的文档。(Qt、wxWidgets、

你有这样的问题,因为你只是问了一个错误的问题。如果您的应用程序是一个命令行工具,并且可以从终端访问,那么就不可能知道此时按下了哪些键,因为终端可能远离运行应用程序的机器,而哪个键更重要,终端没有理由向您发送箭头键,因为终端可以使用箭头键进行文本导航

因此,您可以搜索如何使终端向您发送按键。不是每个终端都支持它,但是,我认为,现代操作系统中的大多数现代终端都支持它

如果您有一个本地运行的gui应用程序,并且假设您通过插入的键盘控制它。然后,您应该搜索gui工具包的文档。(
Qt
wxWidgets
、原始
xorg
、windows API等)

因此,对于这个问题,没有任何本地的C++解决方案,因为你的问题在很多情况下都没有意义。 因此,您可以使用一些控制台库(如
ncurses
)或gui工具包(如
Qt
),或在特定情况下搜索本机解决方案,但不要期望最后一种方法在其他机器上没有任何额外代码的情况下也能工作


或者只需搜索其他允许您这样做的库。

正如您所说,您只找到了适用于Windows的资料,我认为您正在寻找一种Linux Unix方式。像我这样的老恐龙还记得我们只有真正的控制台(只有键盘和80x25显示器)的时代。在这些早期存在着低级库,用于解释键盘传输的键,并在几乎任何终端的屏幕上定位光标,而高级库则将屏幕用作(纯文本)GUI


你应该在高级库中查找
curses
ncurses
,在低级功能中查找terminfo。

你想在Xcode或你的应用程序中捕捉箭头键吗?我必须在方法中使用箭头键的输入。然后它与Xcode无关。它是命令行应用程序还是使用COCa使用UI?C++命令行应用程序。我认为这与Xcode有关,因为我发现的东西只能在Windows上工作。Xcode只是一个IDE,所以大多数时候它与它无关。您应该看看一些UNIX示例,了解如何读取按键和捕捉箭头键。我从来没有想到像
vi
和老式的
vt-100
终端这样的程序可以被描述为21世纪的现代版:-)