Qt | qDebug()的使用

1,182 阅读2分钟

「这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战」。

环境:Qt Creator5.5.1

前言:

程序调试过程中常用到qDebug()函数,他可以将调试信息直接输出到控制台或程序输出栏中。该方法的功能类似于C++中的TRACE()函数。

qDebug()的使用方法:

qDebug()函数有两种使用方法:

  • 一种是直接将字符串当做参数传给qDebug()函数。 例如:qDebug("打印值: %d", 10);
  • 另一种方法是使用输出流的方式一次输出多个值,他们的类型可以不同。 例如:qDebug() << "打印值:" << 10 << "打印字符串" << "你好!";

注: 如果只使用第一种方法,是不需要添加<QDebug>头文件的;如果使用第二种方法就必须添加<QDebug>头文件。因为第一种方法使用起来比较麻烦,需要写打印值的类型表示,所以经常使用第二种方法。

在使用qDebug()函数的第二种方法时还可以让输出信息自动换行。

自动换行:

例:qDebug() << "打印信息1:" << "信息1" << endl << "打印信息2:" << "信息2";

endl是起换行作用的,这时打印出的信息“打印信息1:信息1” 和 “打印信息2:信息2”是分别在两行里现实的。

打印值的类型表示:

符号表示
%a,%A读入一个浮点值(仅C99有效)
%c读入一个字符
%d读入十进制整数
%i读入十进制,八进制,十六进制整数
%o读入八进制整数
%x,%X读入十六进制整数
%s读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G用来输入实数,可以用小数形式或指数形式输入。
%p读入一个指针
%u读入一个无符号十进制整数
%n至此已读入值的等价字符数
%[]扫描字符集合
%%读%符号

打印函数信息:

有时在调试过程中,我们想再执行的函数中将函数名称、函数类名等,这是如果手写就会很麻烦,可以使用___FUNCTION___来实现。

这里的___FUNCTION___是C/C++提供的一个宏定义,在程序预编译时预编译器将用所在的函数名对宏做替换。所以在打印信息时使用这个宏就可以直接得到函数名称。

例:qDebug() << __FUNCTION__;//注意这里是两个下划线

类似的还有:

宏__LINE__:当前源代码行号;

宏__FILE__:当前源文件名;

宏__DATE__:当前的编译日期

宏__TIME__:当前编译时间;