Qt 之 qDebug()打印和QString中文乱码 您所在的位置:网站首页 qt控制台打印 Qt 之 qDebug()打印和QString中文乱码

Qt 之 qDebug()打印和QString中文乱码

2023-07-27 04:54| 来源: 网络整理| 查看: 265

文章目录 前言一、qDebug()?二、使用方法1.不用引入头文件2.引入头文件 #include 3.关闭自动插入空格4.关闭引号字符,转义字符 三、扩展1.屏蔽qDebug()打印2.qDebug和QString中的转义字符2.qDebug和QString中的中文乱码1. msvc情况一:2. msvc情况二:2. mingw情况下: 乱码总结 总结扩展阅读utf-8 BOM

前言

qt代码开发过程中,最常用的应该就是qDebug()了把,跟踪程序的执行先后流程,打印变量内容。

一、qDebug()?

使用qDebug()函数,它可以把调试信息直接输出到控制台上。

输出到控制台上有两种方式:

(1) 将字符串当做参数传给qDebug()函数。(这种方法可以不用添加头文件#include) (2) 使用流输出的方法输出多个字符串。(需要添加 #include头文件) 二、使用方法 1.不用引入头文件

如果向函数传递格式字符串和参数列表,则其工作方式与C语言的printf()函数类似。格式应为Latin-1字符串

qDebug(const char *message, …)

qDebug(const char *message, ...) qDebug("%s", "Hello world!"); 2.引入头文件 #include

代码如下(示例):

#include qDebug() printf("%c", ch.toLatin1()); } return app.exec(); }

输出如下:不感到意外把? 在这里插入图片描述 仔细观察,cout 和 printf 是一样的,唯独 qDebug() 输出了一些额外的东西; qDebug() 不仅会在引号中打印字符串、转换 Unicode,还会完整打印转义字符,例如:\ " \t \n 等等 所以,如果想避免可以使用上面提到的***QDebug::noquote()***.

#include #include #include #include int main(int argc, char **argv) { QCoreApplication app(argc, argv); QString dir = app.applicationDirPath(); dir = QDir::toNativeSeparators(dir); qDebug().noquote() QApplication a(argc, argv); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QString n2 = QString::fromUtf8("你好马"); QString n("你好"); qDebug()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有