gpt4 book ai didi

c++ - 控制台上没有显示\b 字符的输出

转载 作者:行者123 更新时间:2023-11-28 01:19:18 31 4
gpt4 key购买 nike

以下代码片段在 while 循环的每次迭代中不打印任何内容。实际输出仅在程序执行结束时打印。此问题仅在 CentOS 中遇到,而在 Windows 中代码片段按预期工作。

std::cout << "Test \\b functionality: ";
int count = 0;
std::cout << count;
while (count < 10)
{
std::this_thread::sleep_for(std::chrono::seconds(1));
std::cout << std::string(std::to_string(count).length(), '\b');
std::cout << ++count;
}

移除 "std::this_thread::sleep_for(std::chrono::seconds(1));"声明 打印每次迭代的输出。

预期输出:在每个迭代控制台上应该在删除旧计数值后输出新的计数值。换句话说,控制台应该显示 count 变量的最新值。

最佳答案

std::cout 是一个缓冲流,因此您必须刷新它以保证在关闭之前写入数据:

std::cout << std::string(std::to_string(count).length(), '\b') << std::flush;
std::cout << ++count << std::flush;

关于c++ - 控制台上没有显示\b 字符的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57325597/

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