Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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++;,键盘输入监视器_C++_Unix_Input - Fatal编程技术网

C++ C++;,键盘输入监视器

C++ C++;,键盘输入监视器,c++,unix,input,C++,Unix,Input,我正在温习我的一般编程技能,我遇到了一个障碍。我正在写一个程序,模拟一群兔子。一旦这个程序启动,它是自主的,但是,在任何时候,用户都应该能够按“k”键将人口减少一半。我想不出一种不暂停程序等待用户输入的方法。我也想不到一种方法使程序立即响应(程序使用sleep命令半实时运行)。有没有一种方法可以在没有多年经验的情况下实现这一点?C++对键盘一无所知,因此对此问题的答案取决于您的操作系统及其库。看看Windows API调用。你应该能够找到一个合适的地方来把这个代码插入到你的代码中去检测按键。<

我正在温习我的一般编程技能,我遇到了一个障碍。我正在写一个程序,模拟一群兔子。一旦这个程序启动,它是自主的,但是,在任何时候,用户都应该能够按“k”键将人口减少一半。我想不出一种不暂停程序等待用户输入的方法。我也想不到一种方法使程序立即响应(程序使用sleep命令半实时运行)。有没有一种方法可以在没有多年经验的情况下实现这一点?

C++对键盘一无所知,因此对此问题的答案取决于您的操作系统及其库。

看看Windows API调用。你应该能够找到一个合适的地方来把这个代码插入到你的代码中去检测按键。< /P> < P>我不确定这是否是标准C++,但是你可以使用C函数来检查一个密钥是否可用:< /P>
#include <conio.h>

int wmain()
{
    if(_kbhit())
    {
        char ch = _getch();
    }
}
#包括
int wmain()
{
如果(_kbhit())
{
char ch=_getch();
}
}

<>编辑:正如ZAN-LYX提到的,这不是标准C++,甚至是标准C,这就是为什么没有头。在Visual C++或DOS C++编译器中它将工作得很好。

< P>我认为这与你想做的W/O有关的NCKISS很接近。

< P>一个像QT这样的库可以帮助你很多。您将创建一个“应用程序”对象,该对象派生自
QCoreApplication
。在重写
QCoreAPplication::event(event*)
时,如果事件是包含
Qt::Key_K
QKeyEvent
,您将处理该事件。它可以跨Windows、Mac和Linux进行移植。

尝试ncurses它在UNIX环境中是相当标准的。它具有特殊功能,可以在没有人按任何键的情况下超时等待用户输入。

关于tpdis注释-绝对正确-我假设是Windows。了解*nix系统的任何信息吗?知道应该从哪里开始查找吗?告诉我们什么操作系统你想让这段代码在下面运行。这个答案应该是一个注释。*nix是我正在使用的a.t.m.
我正在编写一个模拟兔子群的程序。一旦程序启动,它是自治的<代码> ---你和第一只兔子有什么关系,让程序运行?这个殖民地的构造函数用5个兔子随机地把它种子或是可能的复制品播种出来——尽管没有C++抽象。还要检查它是否为非标准,即仅限Windows。