C++读取windows下中文乱码(解决)

C++读取txt文件中的中文出现乱码

问题描述:在写一个小项目时,需要读取txt中的信息,其中包含中文和数字。
以下是读取所用代码:

int SID;
string SName;
string SPwd;
while (ifs >> SID && ifs >> SName && ifs >> SPwd)
{
	if (SID == num_ID && SName == name && SPwd == pwd)
	{
		cout << "验证登录成功!" << endl;
		system("pause");
		system("cls");
		ifs.close();
		person = new Student(num_ID, name, pwd); //创建学生对象
		
		return;
	}
}

这是txt文件中的内容:
txt文件内容

以下是读取的结果:
读取产生的乱码
估计产生这个问题的原因:

  • txt编码格式的问题

验证:
1、经检查,创建的txt文件的编码格式是UTF-8。
文档编码格式

通过查阅网上的解决方案,应该是创建的txt文档编码格式与系统编码格式不符。因此需要将txt文档的编码格式改为系统默认的编码格式。具体解决方法如下
(1)先查看自己系统的编码格式:
打开cmd,在窗口上方右击,点击属性
系统编码格式查询
(2)将已有的txt文档另存,在保存界面选择与系统相符的编码格式。
更改编码格式
(3)更改之后,重新读取:
更改后结果正确读取txt文件
问题得到解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值