「这是我参与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__:当前编译时间;