gpt4 book ai didi

c++ - 为什么 Qt Creator 在 cout.flush() 调用后添加一个换行符?

转载 作者:可可西里 更新时间:2023-11-01 18:35:42 25 4
gpt4 key购买 nike

代码简单

#include <iostream>
#include <unistd.h>
using namespace std;

int main()
{
for(int i = 0; i < 3; ++i)
{
cout << "1 "; cout.flush();
sleep(1);
}
}

在 .pro 文件中

QT += core    
TARGET = ProjectName
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TEMPLATE = app

如果输出进入 Qt Creator“应用程序输出”(默认情况下源代码位置下的位置),每个“1”从一个新行开始。

如果我在 Ubuntu 终端中使用 g++ 编译并执行单独的 *.cpp 文件,它会以正确的方式工作。

如果我在 Qt Creator 中创建一个新项目并且输出进入 Qt Creator 控制台(黑色背景的新窗口),它会以正确的方式工作。

那么,为什么 cout.flush() 在第一种情况下会导致换行?

最佳答案

显然,这是一个 Qt Creator 错误,他们不打算很快解决(至少 2015 年 4 月是这样)。我已经测试了 Qt Creator 3.5.1 (Qt 5.5.1) 并且错误仍然存​​在,即使新行仅在第一个 std::cout.flush() 之后打印调用或附加 std::flush机械手 std::cout <<打电话。

无论如何,可以在此处找到此错误的 JIRA 票证:

Flushing application output automatically starts a new line

关于c++ - 为什么 Qt Creator 在 cout.flush() 调用后添加一个换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27202602/

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