1

QTextStream允许我进行包装stdout,以便我可以使用 Qt spesifics 方便地写入标准输出。例子:

QTextStream qout(stdout);
qout << QString("Some qt spesific stuff: %1\n").arg(1337);

然而,虽然QTextStream非常有用,但它不支持二进制数据。通过它的所有数据都应遵循有效的字符集和编码(unicode/UTF-8 等)。

因此,如果我想将原始二进制数据输出到,逻辑替换stdout是替换QTextStreamQDataStream. 但是,该类不允许我包装stdout(它没有采用 std 文件句柄的构造函数)。

那么在将二进制数据写入时,我有哪些选择来获得“Qt 便利” stdout?下一个最好的事情是什么?

PS:我知道将二进制数据写入标准输出并不总是好主意。但是,我真的需要这样做。

4

1 回答 1

1

您可以使用以下重载打开标准输出QFile::open

QFile my_stdout;
if (my_stdout.open(1, QIODevice::WriteOnly)) {
    QDataStream qout(my_stdout);
    qout << QString("Some qt spesific stuff: %1\n").arg(42);
}
于 2019-03-06T05:07:27.580 回答