Qt杂谈:qDebug实现不换行输出

Qt杂谈:qDebug实现不换行输出

我们知道在使用qDebug时输出的内容会自动换行。如何实现qDebug输出不自动换行呐?
qDebug的核心代码

void qt_message_output(QtMsgType msgType, const char *buf)
{
    if (handler) {
        (*handler)(msgType, buf);
    } else {
        fprintf(stderr, "%s/n", buf);
        fflush(stderr);
    }
}

可以看到换行符已经写死了。除非修改源码,重新编译qcore。但是这样太麻烦了。推荐使用std::cout记得加上头文件****。示例

#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    //往容器里面添加值,除了构造函数之外。就是insert方法了。此方法有很多的重载版本可以使用。
    QMap myMap;
    //1. insert(const Key &key, const Value &value)。最常用的方法,往map容器里面添加键值对
    myMap.insert("bob", 21);
    QStringList strList = myMap.keys();
    for(QString str : strList)
    {
        //qDebug() << str;
        std::cout << str.toStdString() << " ";
    }
    foreach(int age, myMap)
    {
        //qDebug() << age;
        std::cout << age << std::endl;
    }
    return a.exec();
}

你可能感兴趣的:(我的QT,qt,开发语言)