gpt4 book ai didi

c++ - getch() 不响应停止循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:51 29 4
gpt4 key购买 nike

假设 ncurses header 存在并且我的 random_number_generator() 方法正在运行。我试图通过点击“a”退出循环(最终我想通过点击 CtrlE 退出)。

我的代码继续按预期每秒打印随机数。如果满足任一条件,我希望它退出:

  1. 如果随机数是除数的倍数,则退出。

  2. 如果我使用getch(),它将退出。我认为这应该有效,但当我点击 a 时它没有退出。

    int main(int argc, char *argv[]){
    int lowest = atoi(argv[1]);
    int highest = atoi(argv[2]);
    int divisor = atoi(argv[3]);

    int random_number;
    srand((unsigned)time(0));

    int c;
    do
    {
    random_number = random_number_generator(lowest, highest);
    cout << random_number << endl;
    sleep(1);
    } while(random_number % divisor != 0 || (c=getch())!=49);

    return 0;
    }

编辑:

我尝试将条件更改为 &&,但 getch 仍然不让它退出:

随机数输出范围1-10:

4
a3 <-hit a
aaa4 <-hit a many times
5 <-exits

最佳答案

因为Short-Circuit如果第一个表达式为真,则逻辑或运算符 || 的行为第二个不执行。

    random_number % divisor != 0  ||  (c=getch())!=49
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^
True not get executes

关于c++ - getch() 不响应停止循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18628537/

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