如何从变量递增或递减直到获取char

时间:2017-04-14 20:00:23

标签: c++

我想在控制台应用程序中创建一个蛇程序。 但在一个我困惑的地方。 我的问题是这样的:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main() {
    int a=2000;
    while (1) {
        cout << time(0)<<endl;
        a -= 100;
        _sleep(a);
      **if (getch())break;
        else continue;
    }
}

我的问题在**中,我想从它那里做到这一点,直到我按下一个键。 例如,我想从它运行如下: 打印时间()。 a = 1900。  等1.9s。 打印时间()。 一个= 1800。 等1.8秒 //现在我按了一把钥匙。 break.//nd program

所以我发现答案我在conio.h库中使用了kbhit()。

1 个答案:

答案 0 :(得分:0)

你可以试试这个。当然,你需要在父进程中做一些事情,让getchar()返回任何按键而不等待,例如使用_getchar()。

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <signal.h>
#include <conio.h>
using namespace std;
int main() {
    pid_t id;
    id = fork();
    if(id)
    {
      getchar();
      kill(id, SIGTERM);
    }
    else
    {
        int a=2000;
        while (1) {
            cout << time(0)<<endl;
            a -= 100;
            _sleep(a);
          /*if (getch())break;
            else continue;
            */
        }
    }
}