Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.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++_Sleep - Fatal编程技术网

C++ 它不像预期的那样睡觉

C++ 它不像预期的那样睡觉,c++,sleep,C++,Sleep,考虑到这印的是 [E] [F] [A] [C] [A] [B] [F] [B] [B] [D] [C] [C] [C] [C] [C] 接下来的等待5秒并打印一行,而不是执行每个[…]并等待1秒,为什么 for (int i = 0; i <= 2; i++) { for (int j = 0; j <= 4; j++) { int a = randomInt(0, 5); sleep(1);

考虑到这印的是

[E] [F] [A] [C] [A] 
[B] [F] [B] [B] [D] 
[C] [C] [C] [C] [C]
接下来的等待5秒并打印一行,而不是执行每个[…]并等待1秒,为什么

    for (int i = 0; i <= 2; i++) {
        for (int j = 0; j <= 4; j++) {
            int a = randomInt(0, 5);
            sleep(1);
            cout << "[" << allowed[a] << "] ";
            usciti[i][j] = allowed[a];
        }
        cout << endl;
    }

这可能是因为您在刷新std::cout流之前没有刷新std::cout流,而endl也会刷新std::cout流。您可以使用对cout.flush的调用来完成此操作。

输出是否已缓冲?看看这个函数:

应该可以:

for (int i = 0; i <= 2; ++i) {
    for (int j = 0; j <= 4; ++j) {
        int a = randomInt(0, 5);
        sleep(1);
        cout << "[" << allowed[a] << "] " << std::flush;
        usciti[i][j] = allowed[a];
    }
    cout << endl;
}

你就这样冲厕所。我可以怀疑你只需要在正确的点刷新缓冲区…我无法复制这个。这对我来说很好。@razlebe可能就是这样,为什么不把它作为答案发布呢?@razlebe你敢打赌我会的。杰夫,如果他发帖的话,你应该把他的答案记下来。@Luchian,Dennis-谢谢。我只是路过这里,没有时间写一个合适的答案,所以被贴上了评论