我不知道它是否与ostream中的冲洗有关。既然,endl以齐齐右边结束?我不知道什么是同花顺及其运作方式。
我有一个函数会每秒打印出字符串的每个字符。我希望在每个角色之后将它打印出来。然后,我写了这个函数:
using namespace std;
void print_char_per_second (string text) {
int i = 0;
int len = static_cast<int>(text.length());
while (i < len) {
int tick = clock() % CLOCKS_PER_SEC;
if (tick == 0) {
cout << text[i];
i++;
}
}
}
它在循环完成循环后打印文本,并立即打印文本中的所有字符。为什么会这样?
答案 0 :(得分:7)
Flushing确保到目前为止写入流的所有输出都显示在控制台上。
您可以在每次输出操作后执行std::cout << std::flush
或std::cout.flush()
,以确保输出立即显示在控制台上。
现在它只是将所有内容写入流中,并且仅在循环后刷新流。