QProcess::readAllStandardOutput() 和换行符
QProcess::readAllStandardOutput() and line feeds
我正在打印QProcess::readAllStandardOutput()
的输出(在 Ubuntu 18.04 上(,它在其他方面工作正常,但n
字符实际上不是换行符,并且以某种方式从字面上显示为字符串的一部分:
/usr/local/lib/libpcl_search.son/usr/local/lib/libpcl_sample_consensus.son/usr/local/lib/libpcl_io.son/usr/local/lib/libpcl_segmentation.son/usr/local/lib/libpcl_common.son/usr/local/lib/libboost_random.son/usr/local/lib/libboost_math_tr1l.so
这是在运行带有 QProcess 的命令时输出find / -name "*so"
如下所示:
qDebug() << m_process->readAllStandardOutput();
我想这是一个编码问题..?
导致此问题是因为 QDebug 将显示尾行和类似的字符,因为您正在向它们传递 QByteArray,如果您想查看所需的输出,请使用 qPrintable:
#include <QCoreApplication>
#include <QProcess>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QProcess process;
QObject::connect(&process, &QProcess::readyReadStandardOutput, [&process](){
qDebug()<< qPrintable(process.readAllStandardOutput());
});
process.start("find / -name "*so"");
return a.exec();
}
输出:
/snap/core/4917/lib/crda/libreg.so
/snap/core/4917/lib/i386-linux-gnu/ld-2.23.so
/snap/core/4917/lib/i386-linux-gnu/libBrokenLocale-2.23.so
/snap/core/4917/lib/i386-linux-gnu/libSegFault.so
/snap/core/4917/lib/i386-linux-gnu/libanl-2.23.so
/snap/core/4917/lib/i386-linux-gnu/libc-2.23.so
/snap/core/4917/lib/i386-linux-gnu/libcidn-2.23.so
...
相关文章:
- 如何防止clang格式在流运算符调用之间添加换行符<<
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 在 Stream C++ 文本之前有一个额外的换行符
- 流:CSV 文件中的换行符
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- Clang-格式:在多行语句之后的换行符上打开大括号
- 在输出流中插入换行符
- 防止控制台在通道字符(在 c++ 中)中输入空格(即空格、制表符和换行符)
- QProcess::readAllStandardOutput() 和换行符
- 如果有换行符,clang 格式不会附加大括号
- 提取后返回换行符的C++istream.get()
- 如何在出现换行符之前将多个整数作为输入?
- 正则表达式 获取两个换行符之间的文本
- 包含换行符分隔的单词的文件和C++中这些单词的字符串向量的大小是否相同?
- 在字符串中输入换行符
- 从文本文件中读取数据并删除所有换行符空格,并在 C++ 控制台中显示
- 使用 fgets() 从键盘读取时从以前的输入读取换行符
- C++ 换行符上的合并排序错误中断
- 在 std::string 的末尾插入换行符
- 连接两个文件时如何避免冗余尾随换行符?