打开文本时候 rb与r的区别

本文探讨了在QT中使用'rb'和'r'打开文本文件时的区别。'rb'模式用于以二进制方式读取文件,可能导致' '被当作一个字节处理,引起乱码问题。解决方法是采用'rb'模式打开文本,以避免字符编码问题。

 我在读文本并且需要读出来的时候开始用了以下打开方式

if (!fopen_s(&pfile, file_path, "r"));

后来又用来确定文本长度

fseek(pfile, 0, SEEK_END);
			long n = ftell(pfile);
			fseek(pfile, 0, SEEK_SET);


最后用以下代码获取文本内容

char *str = new char[n + 1];
				fread_s(str,n, 1, n, pfile);
				str[n] = '\0';
				QString text = QString::fromLocal8Bit(QByteArray(str));
				ui.textBrowser->setText(text);


但是我获取的文本总是后尾乱码,后来调试发现在读长度的时候会把 换行符 '\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值