考虑到这会打印类似
的内容[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;
}
答案 0 :(得分:6)
这可能是因为你没有刷新std :: cout流直到endl
(它也会刷新)。您可以使用cout.flush()
来拨打电话。
答案 1 :(得分:3)
这应该有效:
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;
}
像这样flush
cout
。然后cout << endl;
将开始一个新行。
在您的代码中,您正在写入缓冲区,直到使用endl
(再添加新行)将其刷新。有关详细信息,请参阅here。
答案 2 :(得分:1)
也许输出是缓冲的?看看这个函数:http://www.cplusplus.com/reference/iostream/ostream/flush/