【发布时间】:2019-01-31 00:47:56
【问题描述】:
我正在打印来自 QProcess::readAllStandardOutput()(在 Ubuntu 18.04 上)的输出,否则它工作正常,但 \n 字符实际上不是换行符,并且以某种方式作为字符串的一部分出现:
/usr/local/lib/libpcl_search.so\n/usr/local/lib/libpcl_sample_consensus.so\n/usr/local/lib/libpcl_io.so\n/usr/local/lib/libpcl_segmentation.so\n/usr/local/lib/libpcl_common.so\n/usr/local/lib/libboost_random.so\n/usr/local/lib/libboost_math_tr1l.so
这是运行find / -name "*so" 命令时的输出,QProcess 打印如下:
qDebug() << m_process->readAllStandardOutput();
我猜这是编码问题..?
【问题讨论】:
-
请编辑您的问题以显示您如何阅读/查看来自
QProcess的数据。 -
已编辑。不知道为什么投反对票。
-
请记住,根据命令您将得到答案,另一方面 readAllStandardOutput() 返回 QByteArray() 而不是 QString() 所以您可能会得到
\n -
是的,但是看看我自己发布的答案。
-
正如@eyllanesc 所说,
QByteArray的qDebugoperator<<重载将转义某些字符,例如换行符等。因此您会看到输出。
标签: c++ ubuntu qt5 qstring qbytearray