为什么Qt Creator在cout.flush()调用后添加一个换行符
Why does Qt Creator add a newline after cout.flush() call?
代码很简单
#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"都从新行开始。
如果我使用 g++ 在 Ubuntu 终端中编译并执行单独的 *.cpp 文件,它会以正确的方式工作。
如果我在Qt Creator中创建一个新项目,并且输出进入Qt Creator控制台(黑色背景的新窗口),它会以正确的方式工作。
那么,为什么cout.flush()在第一种情况下会导致换行符?
显然,这是一个Qt Creator错误,他们不打算很快解决(至少2015年4月的状态是这样)。我已经测试了Qt Creator 3.5.1(Qt 5.5.1),即使新行仅在第一次std::cout.flush()
调用或将操纵器附加到std::cout <<
调用后打印std::flush
错误仍然存在。
无论如何,此错误的JIRA票证可以在这里找到:
刷新应用程序输出自动启动新行
相关文章:
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 为什么我必须添加一个小数才能在C++中正确计算此数学
- 在单链表前面添加一个节点后,我无法遍历每个节点
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- 在多维向量中的特定位置添加一个值
- 转换为大写会在末尾添加一个额外的字母吗
- 当我尝试在 tensorflow 中添加一个新操作时如何 #include "include/libxsmm.h"?
- 在数组的开头添加一个元素并移动其余元素,但保留大小
- C++在减去 int 时向 int 添加一个额外的数字
- 如何重载运算符+= 要增加动态数组大小,请在末尾添加一个对象
- 为Qt项目的每个模块添加一个包含
- C 需要帮助的作业程序,该程序在文件列表中读取并在每个双重的双重列表中添加一个字符串
- 为什么当我添加一个不同的对象(复制构造函数中的参数)时调用复制构造函数?
- 添加一个节点,并在通用树中的两个给定节点之间找到路径成本,其中c 中的儿童列表
- 我试图键入一个函数来在单链表的末尾添加一个节点,但不起作用
- 在 c++ 中向数组变量添加一个数字
- 向现有类添加一个方法以逐行读取文件的内容
- 取消脱壳:使用模板在多行类型定义中添加一个尖括号后的新行