繁体   English   中英

循环时,Cout不会在没有endl的情况下打印文本?

[英]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::flushstd::cout.flush() ,以确保输出立即显示在控制台上。

现在它只是将所有内容写入流中,并且仅在循环之后刷新流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM