我不知道这是否与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++;
}
}
}
它在while循环结束循环之后打印一次文本,并一次打印文本中的所有字符。为什么会这样呢?
刷新可确保到目前为止写入控制台的所有输出都显示在控制台上。
您可以执行std::cout << std::flush
或std::cout.flush()
在每次输出操作之后确保输出立即显示在控制台上。
现在,它只是将所有内容写入流,并且仅在循环后刷新流。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句