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

问题:

在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),两个函数虽然同名,但一个返回的内容包括换行符,一个不包括换行符。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值