C++读取文本文件中的汉字出现乱码的原因及解决措施

大家好!
作者今天在写代码时遇到了读取文本文件中的汉字时出现乱码的情况,所以本文介绍Windows操作系统中,C++读取文本文件中的汉字出现乱码情况原因及解决措施。
下面代码可以读取Stu.txt中的内容并输出:

ifstream ifs;
ifs.open(fileName, ios::in);

if (!ifs.is_open())
{
	perror("file open error:\n");
	printf("登录失败,文件不存在!!!\n");
	return;
}

if (type == 1)
{
	string fname,name;
	string fpwd,pwd;
	int fid,id;
	cout << "请输入学生名:";
	cin >> name;
	cout << "请输入学生id:";
	cin >> id;
	cout << "请输入学生密码:";
	cin >> pwd;
	while (ifs >> fname && ifs >> fid && ifs >> fpwd)
	{
		cout << fname <<" " << fid << " " << fpwd << endl;
		if (fname == name && fpwd == pwd && fid == id)
		{
			cout << "登录验证成功!!!" << endl;
			system("pause");
			system("cls");
			person = new Student(id, name, pwd);
			studentMenu(person);
			system("pause");
		}
	}

在这里插入图片描述
我们可以看到该文本文件其实有数据为 张三 1 123456,我们进行如代码所示读取时应该也是读取到一模一样的,但却不是我们想要的结果:
在这里插入图片描述
我们可以看到第一个张三读出来是乱码,这事上面原因造成的呢?
回答:

c++读取文件出现乱码的原因是文本文件的编码格式和cmd的编码方式不一致造成的,修改文本文件编码格式,文本文件的编码格式和cmd的编码方式一致即可。

作者的电脑cmd编码格式为简体中文GBK,也就是ANSI,所以现在只需要将文本文件的编码格式也修改为ANSI即可。第一张图片中作者也标记出了当前文件编码格式为UTF-8,我们现在安装下面步骤进行修改即可:
在这里插入图片描述
将当前文本文件另存为在当前目录下,将之前那个覆盖即可。
在这里插入图片描述
覆盖时记得将下面的编码选择为ANSI形式

修改结束后我们再来运行一遍:

在这里插入图片描述

现在可以看到能够正常读取文件文件中的汉字了!!!

至于怎么查看自己电脑的cmd编码格式:

我们同时按住 winr 键,然输入cmd:
在这里插入图片描述

进入cmd窗口后,输入chcp命令后按回车键,即可查看当前系统的编码格式:

在这里插入图片描述

可以看到当前cmd的编码格式是936,也就是GBK(windows下默认格式)。

如此我们就可以查看的系统cmd默认编码格式!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/481679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python编程—Ajax数据爬取

Python编程—Ajax数据爬取 ​ 在浏览器中可以看到正常显示的页面数据&#xff0c;而使用requests得到的结果中并没有这些数据。这是因为requests获取的都是原始HTML文档&#xff0c;而浏览器中的页面是JavaScript处理数据后生成的结果&#xff0c;这些数据有多种来源&#xff…

模糊PID模糊化(三角隶属度函数SCL代码)

模糊PID系列文章大家可以查看PID专栏,这里我们再次对模糊化进行细分,为大家呈现不同的程序写法。 1、模糊控制模糊PID学习笔记 https://rxxw-control.blog.csdn.net/article/details/124380674https://rxxw-control.blog.csdn.net/article/details/1243806742、模糊PID(三角…

25.8 MySQL 数据处理之增删改

1. 数据完整性问题 数据完整性问题: 数据的插入, 更新, 删除等操作都需要满足数据库表的完整性约束条件, 否则这些操作将会失败. 完整性约束在数据库设计中起到了至关重要的作用, 它们确保了数据库中数据的准确性和一致性.约束条件的全称通常被称为完整性约束条件(Integrity Co…

物理查询优化(二):两表连接算法(附具体案例及代码分析)

前言 关系代数的一项重要操作是连接运算&#xff0c;多个表连接是建立在两表之间连接的基础上的。研究两表连接的方式&#xff0c;对连接效率的提高有着直接的影响。 连接方式是一个什么样的概念&#xff0c;或者说我们为何要有而且有好几种&#xff0c;对于不太了解数据库的人…

Sentry(Android)源码解析

本文字数&#xff1a;16030字 预计阅读时间&#xff1a;40分钟 01 前言 Sentry是一个日志记录、错误上报、性能监控的开源框架&#xff0c;支持众多平台&#xff1a; 其使用方式在本文不进行说明了&#xff0c;大家可参照官方文档&#xff1a;https://docs.sentry.io/platforms…

2000-2022年上市公司客户、供应商集中度数据

2000-2022年上市公司客户、供应商集中度数据 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;上市公司年报 3、指标&#xff1a;年份、股票代码、股票简称、行业代码、省份、城市、省份代码、城市代码、上市状态、前五名客户产生的营业收入_亿元、占全年营业收入的比例…

告别写作瓶颈,AI写作软件为你开启新篇章

如今&#xff0c;文字的力量对于人们愈发凸显。然而&#xff0c;对许多人来说&#xff0c;写作却是一项困难而耗时的任务。从学生的论文到商务报告&#xff0c;从小说创作到文案&#xff0c;写作瓶颈常常成为人们面临的挑战。然而&#xff0c;随着人工智能技术的不断发展&#…

想来开视频号小店,你需要准备好这些内容!新手建议收藏!

大家好&#xff0c;我是电商小布。 视频号小店项目&#xff0c;作为当前在电商行业内推出时间最短的项目&#xff0c;内部发展潜力大&#xff0c;吸引到了很多小伙伴想要来入局其中。 而对于我们新手朋友来说&#xff0c;在开店的时候&#xff0c;不知道该准备哪些东西&#…

MySQL数据库-MySQL基础-下篇-函数、约束、多表查询、事务

文章目录 函数一、字符串函数练习 二、数值函数三、日期函数四、流程函数总结 约束概述约束演示外键约束概念语法删除/更新行为 总结 多表查询多表关系一对多&#xff08;多对一&#xff09;多对多一对一 多表查询概述内连接外连接自连接*联合查询-union, union all子查询标量子…

A股大变局:从“加速度”到“内在价值”

随着经济发展的变化&#xff0c;A股投资者认知正发生根本性转变&#xff0c;从追求“交易边际变化”到重新认知“内在价值”&#xff0c;“稳定价值类”资产配置价值上升。 广发证券在最新的报告中指出&#xff0c;市场过去偏爱企业“加速度”&#xff0c;但现在却更注重于企业…

分布式搜索引擎ES-RestClient查询文档快速入门

RestClient查询文档快速入门 文章目录 RestClient查询文档快速入门1.1、match_all1.2、全文检索查询1.3、精确查询1.4、复合查询-boolean query1.5、排序和分页1.6、高亮&#xff08;解析查询高亮结果&#xff09; 1.1、match_all package cn.mannor.hotel;import org.apache.…

C语言与sqlite3入门

c语言与sqlite3入门 1 sqlite3数据类型2 sqlite3指令3 sqlite3的sql语法3.1 创建表create3.2 删除表drop3.3 插入数据insert into3.4 查询select from3.5 where子句3.6 修改数据update3.7 删除数据delete3.8 排序Order By3.9 分组GROUP BY3.10 约束 4 c语言执行sqlite34.1 下载…

打造稳健测评体系:亚马逊测评的关键环节解析

亚马逊测评&#xff0c;简而言之&#xff0c;便是通过真实的购买体验&#xff0c;对产品进行的客观评价。这种评价不仅为卖家提供了产品优化的方向&#xff0c;更为消费者提供了决策的依据&#xff0c;使得产品得以在市场中脱颖而出。然而&#xff0c;现今许多卖家选择自主管理…

ideaSSM 财务凭证管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 财务凭证管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff…

LeetCode540 有序数组中的单一元素

Leetcod540 有序数组中的单一元素 1.题目描述 2.解题思路 同样是二分搜索&#xff0c;利用当i为偶数时候&#xff0c;数组中单独元素左侧的所有i位置与i1位置的数字相同&#xff0c;而单独元素右侧的所有i位置与i1位置元素不同的特性&#xff0c;来进行二分搜索 3.算法思路 …

Java多线程(进阶)

文章目录 目录 文章目录 前言 一 . 常见的锁策略 乐观锁 VS 悲观锁 读写锁 轻量级锁 VS 重量级锁 自旋锁 VS 挂起等待锁 公平锁 VS 非公平锁 可重入锁 VS 不可重入锁 二 . 死锁 死锁的三种典型情况 死锁产生的必要条件 死锁的解决办法 三 . CAS ABA问题 四. S…

Kubernetes(k8s)集群健康检查常用的五种指标

文章目录 1、节点健康指标2、Pod健康指标3、服务健康指标4、网络健康指标5、存储健康指标 1、节点健康指标 节点状态&#xff1a;检查节点是否处于Ready状态&#xff0c;以及是否存在任何异常状态。 资源利用率&#xff1a;监控节点的CPU、内存、磁盘等资源的使用情况&#xf…

“破茧”的快手,何日“成蝶”?

文&#xff5c;小 氿 编&#xff5c;黄小艺 快手&#xff0c;走过了至暗时刻。 3月20日&#xff0c;快手发布2023年第四季度及全年业绩财报。财报显示&#xff0c;2023年快手年营收首次突破千亿元&#xff0c;达到1134.7亿元&#xff0c;同比增长20.5%&#xff1b;而在盈利…

堆排序详解

了解堆的操作和向上&#xff08;下&#xff09;调整算法可以看我的上一篇文章&#xff1a; 详解&#xff08;实现&#xff09;堆的接口函数 文章目录 堆是什么&#xff1f;堆排序的原理如何建堆&#xff1f;怎样建堆更快&#xff1f;1.使用向上调整算法建堆时间复杂度分析 2.使…

CSS的特殊技巧

1.精灵图 使用精灵图核心总结&#xff1a; 1. 精灵图主要针对于小的背景图片使用。 2. 主要借助于背景位置来实现--- background-position 。 3. 一般情况下精灵图都是负值。&#xff08;千万注意网页中的坐标&#xff1a; x轴右边走是正值&#xff0c;左边走是负值&#xf…