Qt从文本文件中读入一行内容但不包含换行符

mac2024-03-25  31

问题:

在Qt中,如何从文本文件中读入一行内容但不包含换行符?

方法一:

QFile file("box.txt"); QString qstr = file.readLine(); // 此时读入的一行内容是包括换行符的 qstr =qstr.trimmed(); // 使用函数trimmed()可以去掉换行符

解释: (1)官方帮助文档里写着,QIODevice::readLine(char *data, qint64 maxSize)这个函数读入的一行内容中包含换行符。 (2)官方帮助文档里还写着,trimmed()函数能去除一行文字开头和结尾的空白符例如\t ,\r\n ,\n等,但不会去点这一行中间的空白符。

方法二:

QFile file("box.txt"); file.open(QIODevice::ReadOnly); // 一定要加这一句,调试了好久发现qstr_all_file是空的,就是因为没加这一句文件根本没打开 QTextStream qstr_all_file(&file); QString qstr = qstr_all_file.readLine(); // 此时读入的一行不包括换行符 file.close();

解释: 官方帮助文档里写的,QString QTextStream::readLine(qint64 maxlen = 0)函数返回的一行内容里不包括换行符。这个函数不同于QIODevice::readLine(char *data, qint64 maxSize),两个函数虽然同名,但一个返回的内容包括换行符,一个不包括换行符。

最新回复(0)