Qt控制台输出QString

有时候想在控制台输出我们想要的QString变量。

1、qDebug可以实现在控制台终端打印,但我们还是想使用C++中的std::cout<<variable

This function does nothing if QT_NO_DEBUG_OUTPUT was defined during
compilation.

2、网上说的方法利用QTextStream:

Cpp代码  

  1. #include <QTextStream>

  2. QTextStream cin(stdin, QIODevice::ReadOnly);

  3. QTextStream cout(stdout, QIODevice::WriteOnly);

  4. QTextStream cerr(stderr, QIODevice::WriteOnly);

  5. QString st("hello world");

  6. cout <<str<<endl;//必须加endl才能输出

  7. cin>>str;//输入

  8. cout <<str;

  9. cout.flush();//或者加cout.flush()才能输出

这样的cin、cout、
cerr和我们在传统C++遇到的有一点不同,那就是你cout了一个QString之后,默认是不直接输出的,一般需要等到cout的缓冲区满之后,才
向终端输出内部的字符串;如果你想在cout之后马上看到输出的内容,可以在输出之后在输出一个endl,或者调用cout的内部方法flush,强制情
况缓冲区

3、我们还是习惯用C++的 #include<iostream>中的std::cout,这个时候QString类型需要转换成Char
*

Cpp代码  

  1. #include <iostream>

  2. QString str("hello,world");

  3. QByteArray ba(str.toAscii());//toAscii()返回一个QByteArray类型

  4. std::cout << ba.data();//data()返回char *

  5. //其它类型变量还是可以照常输出的。

Qt控制台输出QString

时间: 2024-08-04 09:09:21

Qt控制台输出QString的相关文章

QT 控制台输出乱码

今天编程,QT控制台printf()不能输出汉字 ,在网友的提示下 自己琢磨半天终于显示正常 方法如下: QString  str="2016-10-9   16:28  下午            \n";   //str.toLatin1();   //QByteArray ba = str.toLocal8Bit().;    // printf(ba.data());     printf(str.toLocal8Bit().data()); 首先将QT String 类型 转

Qt 5.3更新无数,更改C++控制台输出最为赞

本人觉得有了这个更新,Qt Creator可谓几乎没有缺点了,起码仅仅开发C/C++,是不用再去安装VS了. Qt 5.3放出,更新无数,具体参考: http://qt-project.org/wiki/New-Features-in-Qt-5.3 有一个功能,属于超级好的改进了,就是C++控制台程序的输出,不再是弹出一个CMD,执行程序,而是直接在应用程序输出结果: 这个修改,让我振奋不已,以前弹出CMD,经常提示找不到句柄,程序无法结束.这个Bug我一直难以接受! Many thanks.

Qt之输出控制

简述 在Qt项目开发过程中,往往需要对程序的一些信息进行控制,比如:打印日志.调试信息等,便于我们后期查找.跟踪及定位问题. 下面,我们来分享下常用的几种方式. 简述 示例代码 应用程序输出 控制台输出 重定向至文件 示例代码 我们简单地写一些测试代码,用qDebug输出一些基本信息. #include <QApplication> #include <QWidget> #include <qDebug> int main(int argc, char *argv[])

jenkins控制台输出乱码

根据以往写代码的经验,jenkins控制台输出乱码有可能是编码导致的,问了一下度娘,果然如此,解决办法如下:修改下jenkins的配置文件,设置字符编码为:UTF-8即可,打开jenkins的安装目录,找到jenkins.xml文件,在<arguments>标签处添加红色字体,即定义编码为utf-8<arguments>-Xrs -Xmx512m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsSer

C#在控制台输出异常所在的行数

对于异常,我们经常用try-catch语句来处理,一种常见的方式是在catch语句块用MessageBox.Show("异常")这种弹窗的方式来报告异常.但是有些时候,有些异常发生时我们不希望弹窗干扰用户,只是想要打印出异常信息查找原因.分析调试而已. 这时候常用的方法有:打印log将异常信息保存到文本中.将异常信息输出到可显示文本的控件中.将异常打印到"输出"窗口中. 其中涉及的关键问题是:如何快速定位异常所在的位置.如果可以输出异常所在的行数其实就可以很好解决这

eclipse运行 Maven Test命令时控制台输出乱码的解决办法

在Maven的pom.xml文件中增加: <properties>      <argLine>-Dfile.encoding=UTF-8</argLine> </properties> 今天突然遇到这个问题了,上网搜了一下,答案一大堆,还是这个最好!记录一下! eclipse运行 Maven Test命令时控制台输出乱码的解决办法,布布扣,bubuko.com

C++11,控制台输出的一段小程序。

#include <iostream> // std::cout, std::boolalpha, std::noboolalpha int main () { bool b = true; std::cout << std::boolalpha << b << '\n'; //把bool表示为alpha std::endl(std::cout); //把它当成一个函数来使用. std::cout << std::noboolalpha <

键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值

package cn; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; /**  * 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值  * 分析:  *  1.创建键盘录入对象  *  2.键盘录入多个数据,我们不知道有多少个,所以用集合存储  *  3.以0结束,只要键盘录入的数据是0,就退出循环  *      4.把集合转换成数组  *      5.对数组进行排

代码实现:在控制台输出所有的”水仙花数”

/* * A:案例演示 * 需求:在控制台输出所有的"水仙花数" * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身. * 举例:153就是一个水仙花数. * 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153 分析: 1,100 - 999 2,获取每一个位数的值,百位,十位,个位 3,判断各个位上的立方和是否等于这个数,如果等于打印 */ class Test_Flower { public static void mai