问题:
在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),两个函数虽然同名,但一个返回的内容包括换行符,一个不包括换行符。