Qt中使用cout, cin, cerr
在Qt中,用的最多的是GUI页面,但GUI比较慢,有些小的试验不妨先用console,当然在Qt里面可以直接使用cout, cin这些。 不过可能不会兼容Qt自带的一些类型,比如QByteArray等类型。在网上找了一下,发现可以用如下的方法来进行输出。
首先需要包含下列头文件:
#include <QTextStream>
#include <stdio.h>
然后,在使用cin、cout、cerr之前,创建下列变量:
QTextStream cin(stdin, QIODevice::ReadOnly);
QTextStream cout(stdout, QIODevice::WriteOnly);
QTextStream cerr(stderr, QIODevice::WriteOnly);
其中,QTextStream是个非常好用的字符串处理类,它能够使得字符串或者是基于字符的设备、文件处理变得非常方便。
然后,就可以像正常的C++那样,在QString的环境下使用cin、cout、cerr这些类了。需要注意的一点是,这样的cin、cout、 cerr和我们在传统C++遇到的有一点不同,那就是你cout了一个QString之后,默认是不直接输出的,一般需要等到cout的缓冲区满之后,才向终端输出内部的字符串;如果你想在cout之后马上看到输出的内容,可以在输出之后在输出一个endl,或者调用cout的内部方法flush,强制情况缓冲区,例如:
QString str;
str = "Hello world!";
cout<<str;
cout.flush();
cin>>str;
cout<<str<<endl;
Qt中使用cout, cin, cerr的更多相关文章
- Qt中与文件目录相关操作
一.与文件目录操作有关操作. Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句. QDir::drives()是列出电脑根目录下的所有目录,返回的是QFil ...
- 两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin
老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示.显示控制台方法如下 1.项目(或者叫“工 ...
- cin、cout、cerr、clog------c++ Primer Plus
cin对象与标准输入流相对应. cout对象与标准输出流相对应. cerr对象与标准错误流相对应,常用于程序错误信息,不缓冲,直接被发送给屏幕. clog对象也对应标准错误流(这点儿和cerr是一样的 ...
- C++中cout和cerr
参考:https://blog.csdn.net/garfield2005/article/details/7639833 之前一直在用,但就是没在意两者到底有啥却别,今天又想到这个问题,总结下吧(以 ...
- C++常用输出 cout、cerr、clog
三者在C++中都是标准IO库中提供的输出工具: cout:写到标准输出的ostream对象: cerr:输出到标准错误的ostream对象,常用于程序错误信息: clog:也是输出标准错误流(这点儿和 ...
- cout、cerr、clog
其实大家平常常会用的主要有三个:cout.cerr.clog,首先简单介绍下三者. 这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论): cout:写到标准输出的ostre ...
- Qt中三种解析xml的方式
在下面的随笔中,我会根据xml的结构,给出Qt中解析这个xml的三种方式的代码.虽然,这个代码时通过调用Qt的函数实现的,但是,很多开源的C++解析xml的库,甚至很多其他语言解析xml的库,都和下面 ...
- clog,cout,cerr 输出机制
clog:控制输出,使其输出到一个缓冲区,这个缓冲区关联着定义在 <cstdio> 的 stderr. cerr:强制输出刷新,没有缓冲区. cout:控制输出,使其输出到一个缓冲区,这个 ...
- 【C++】cout、cerr、clog之间的区别
cout.cerr.clog三者都是标准IO库中提供的输出工具. 但是cout是支持重定向操作的.比如freopen()对于cout有效. clog和cerr主要用于错误输出. 因此,如果将程序输出重 ...
随机推荐
- iOS开发之字典数据建立模型步骤
1. 在控制器属性的(questions)set方法中完成字典转模型的操作 - (NSArray *)questions { if (nil == _questions) { //1.加载plist文 ...
- Swift - 13 - 字符串和Character
//: Playground - noun: a place where people can play import UIKit var str = "hi" // 字符串拼接 ...
- C# == 和equals()区别
如以下代码: ? 1 2 3 4 5 int age = 25; short newAge = 25; Console.WriteLine(age == newAge); //true Consol ...
- Visual Studio 2010 单元测试目录
单元测试的重要性这里我就不多说了,以前大家一直使用NUnit来进行单元测试,其实早在Visual Studio 2005里面,微软就已经集成了一个叫Test的专门测试插件,经过几年的发展,这个工具现在 ...
- hive 桶相关特性分析
1. hive 桶相关概念 桶(bucket)是指将表或分区中指定列的值为key进行hash,hash到指定的桶中,这样可以支持高效采样工作. 抽样( sampling )可以在全体数 ...
- 测试最新的log4cplus1.1.2版
#include "stdafx.h" #include <sstream> class AB{ public: void do_test() { ...
- Java中的ExceptionInInitializerError异常及解决方法
当在静态初始化块中出现了异常的时候,JVM会抛出 java.lang.ExceptionInInitializerError异常.如果你了解Java中的静态变量,你会知道它们是在类加载的时候进行初始化 ...
- HTML5 canvas生成图片马赛克特效插件
HTML5 canvas生成图片马赛克特效插件 简要教程 这是一款使用html5 canvas来将图片制作成马赛克效果的js插件.该插件的灵感来自于美国肖像画家Chuck Close.已经有人使用这个 ...
- HTML&CSS基础学习笔记1.29-灵活地使用样式
灵活的使用样式 使用样式的感觉很棒吧! 刚我们使用的内联样式是给具体的标签加上样式,如果有多个标签的时候,我们用内联样式给标签加样式的时候就需要一个个的加过来,这样就很麻烦. 而如果我们使用内部样式表 ...
- C语言结构体占用空间内存大小解析
结构体的数据类型的有点我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧. 格式一: 01.struct tagPhone 02.{ 03. char A; 04. int ...