Qt应用程序在控制台上的文本流
Qt app text stream on console
我在Qt上看到过许多显示控制台消息的模式,但是,它们之间有什么区别:
- 使用iostream和std::cin
- 使用Qdebug
- 使用QTextStream
在什么情况下使用它们更好?
谢谢!
<iostream>
头和std::cout
(*)变量是标准c++库的一部分,而不是Qt特定的功能。如果您在项目中使用其他非基于qt的外部库,则更有可能在这些库中定义的类提供流操作符重载以及与这些c++流兼容的其他特性。例如,如果你使用Boost图形库构建一个图形对象,你可以很容易地将它的Graphviz表示打印到std::cout
流。
另一方面,QTextStream
处理Qt对象,特别是QString
,这使您不必在std::string
与char*
和QString
之间转换,反之亦然。如果您的项目以qt为中心,或者只使用基于qt的外部库,那么QTextStream
很可能会为您节省一些工作。
还要注意,默认情况下,QTextStream
通过使用QTextCodec::codecForLocale()
来处理不同平台上的一些区域设置和字符编码。相反,std::cout
默认使用"C"
语言环境,并且在std::string
/char*
和系统编码之间不进行编码处理。因此,如果您正在开发一个需要编码和语言环境感知的跨平台系统,使用QTextStream
可能会有所帮助,因为您需要手动设置std::cout
,例如,通过调用imbue()
方法来进行这些转换。
(*) -注意std::cin
用于从控制台读取。std::cout
为标准输出。c++标准库还提供了std::cerr
用于错误输出,std::clog
用于日志输出。
相关文章:
- 如何让控制台输出覆盖控制台而不是纯文本输出?
- 反转从控制台读取的文本
- 带有 std::cout 的多线程控制台文本动画
- 以原子方式将彩色文本写入 Windows 中的控制台
- 如何将控制台输出中的所有内容复制到文本文件?
- 有没有办法将 getline() 与外部文本文件一起使用,然后重新获得 cin 的控制权以从控制台获取输入?
- 将文本发送到输入行控制台 C++
- Visual C 关闭文本文件和打开新的控制台窗口
- 如何将控制台输出的文本颜色更改为红色,但如果从Powershell或CMD运行,背景将保持相同的颜色
- 如何在 Windows 中将 C/C++ 控制台文本设置为粗体和斜体
- 如何将文本输出到另一个已打开C 的控制台
- C 日食控制台编码纯文本作为其他字符
- 如何在运行控制台时更改文本
- 将可视C++控制台输出写入或复制到文本文件
- 在文本文件中搜索字段名称,并将所有后续行返回到控制台 - C++
- 如何让控制台在输入一行文本时输出某些内容
- 如何更改代码块中的文本颜色和控制台颜色
- 控制台程序读取文本文件行,做Levenstein并输出一个文本文件
- 将所有控制台输出数据保存到新的文本文件C++
- 如何在控制台项目中重写一行文本?c++