[英]Cout won't print text without endl inside while loop?
我不知道它是否与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++;
}
}
}
它在循环完成循环后打印文本,并立即打印文本中的所有字符。 为什么会这样?
刷新确保到目前为止写入流的所有输出都显示在控制台上。
您可以在每次输出操作后执行std::cout << std::flush
或std::cout.flush()
,以确保输出立即显示在控制台上。
现在它只是将所有内容写入流中,并且仅在循环之后刷新流。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.