gpt4 book ai didi

c++ - Cout 不会在 while 循环中打印没有 endl 的文本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:21 24 4
gpt4 key购买 nike

不知道是不是和ostream中的flush有关。因为,endl 以 flush 结束,对吗?我不知道什么是同花顺以及它是如何工作的。

我有一个函数可以每秒打印出字符串的每个字符。我想在每个字符后打印出新行。然后,我编写这个函数:

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::flushstd::cout.flush()在每次输出操作后确保输出立即显示在控制台上。

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

关于c++ - Cout 不会在 while 循环中打印没有 endl 的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com