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默认编码格式!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拌合楼管理软件开发(十一) 海康威视车牌识别摄像头安装调试,记录犯经验主义错误不断自己打脸过程

前言: 从小白开始 海康威视的摄像头接触过,包括前面也都开发了调用sdk开发拍照和视频预览,以及通过事件警报获取数据的。接触到的像头都是12v或者24v电源&#xff0c;或者是POE供电的&#xff0c;先入为主了觉得都是这样&#xff0c;结果打脸了。 一、设备选型&#xff1a; 最开…

MySQL 经典练习 50 题 (记录)

前言&#xff1a; 记录一下sql学习&#xff0c;仅供参考基本都对了&#xff0c;不排除有些我做的太快做错了。里面sql不存在任何sql优化操作&#xff0c;只以完成最后输出结果为目的&#xff0c;包含我做题过程和思路最后一行才是结果。 1.过程: 1.1.插入数据 /* SQLyog Ul…

【机器学习入门 】人工神经网络(一)

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 第5章 逻辑斯蒂回归和分类 第5章 支持向量机 文章目录 系列文章目录前言一、多层感知机二、反向传播算法三、深度神经网络 前言 人工神经网络( Artifical Neural Netw…

蓝桥杯-02-2023蓝桥杯c/c++省赛B组题目

参考 2023 年第十四届蓝桥杯 C/C B组省赛题解 2023蓝桥杯c/c省赛B组题目(最全版)&#xff1a; A&#xff1a;日期统计 这题方法应该很多&#xff0c;没有和别人讨论想法。我的解法思路是&#xff1a;先 load 函数生成所有这一年的合法日期&#xff0c;然后枚举所有可以从数据…

node和npm yarn包管理工具

node和包管理工具 今日目标&#xff1a; 1.dos常用指令 2.node的模块化 3.npm包管理工具 4.yarn的常用指令 5.node的内置模块 00-回顾 # Promose:作用&#xff1a;解决ajax请求响应顺序不可控的问题特性&#xff1a;1. Promise是一个构造函数&#xff0c;需要通过new关…

uni-app打包证书android

Android平台打包发布apk应用&#xff0c;需要使用数字证书&#xff08;.keystore文件&#xff09;进行签名&#xff0c;用于表明开发者身份。 Android证书的生成是自助和免费的&#xff0c;不需要审批或付费。 可以使用JRE环境中的keytool命令生成。 以下是windows平台生成证…

MySQL、Oracle的时间类型字段自动更新:insert插入、update更新时,自动更新时间戳。设置自增主键id,oracle创建自增id序列和触发器

1. MySQL 支持设置自增id的字段类型&#xff1a;int、bigint、double等数值类型&#xff0c;一般用int、bigint支持设置自动更新时间的字段类型&#xff1a;datetime、timestamp下面sql中的now()函数可以用current_timestamp()替代 1.1. 不指定秒精度 drop table if exists …

Ollama 在本地快速部署大型语言模型,可进行定制并创建属于您自己的模型

# Ollama 在本地快速部署并运行大型语言模型。 macOS 点击下载 Windows 预览版 点击下载 Linux curl -fsSL https://ollama.com/install.sh | sh手动安装指南 Docker 官方的 Ollama Docker 镜像 ollama/ollama 已经在 Docker Hub 上发布。 库 ollama-pythonollama-js…

超详细测试项目——Web电商项目测试点整理.....

虽然说近些年来&#xff0c;软件测试找工作的时候&#xff0c;简历中如果写着电商项目被认为是烂大街的项目&#xff0c;甚至受到根本不了解行情的HR或者部分公司的技术人员的刁难&#xff0c;但是&#xff1a;电商这么流行普遍的项目和应用&#xff0c;这不是很正常么&#xf…

阿里云2核4G云服务器165元一年,ECS u1优惠价格199元一年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

浅谈数据治理之道 数据采集(二)

数据采集是数据治理过程中的一个非常关键和重要地环节&#xff0c;不仅关系到数据的及时性、准确性、完整性和有效性等&#xff0c;还涉及到数据的安全和隐私。其次&#xff0c;涉及到从各种数据源获取原始数据&#xff0c;并将其转换为适合进一步处理和分析的格式。今天 咱们就…

如何从小白,到掌握Python

作为前端开发人员想要掌握Python编程语言&#xff0c;以下是一个学习路径建议&#xff1a; ### 初级阶段&#xff1a; 1. **学习Python基础&#xff1a;** - 学习Python的基本语法、数据类型、流程控制等基础知识。 - 可以通过在线教程、书籍或视频课程来学习&#xff…

Android单片机硬件通信《GPIO通信》

一、什么是GPIO? GPIO&#xff08;英语&#xff1a;General-purpose input/output&#xff09;&#xff0c;通用型输入输出端口&#xff0c;在单片机上一般是通过一个GND引脚和若干个io引脚配合工作。 单片机可以配置GPIO输入输出模式,与外界环境进行通信交互。在输入环境下&…

网络传输(3):TFTP客户端使用

1. 简要说明 在前面的文章中已经讲述了如何安装TFTP客户端和TFTP服务器。其中&#xff1a; tftp-hpa为客户端 tftpd-hpa为服务器。 2. 启动TFTP服务器 我们在设置好相关的TFTP根路径&#xff0c;运行模式以后&#xff0c;可以通过如下指令重启TFTP服务器&#xff0c;使设置生…

【Node.js】events

EventEmitter 像是 Vue2 的event bus&#xff0c;或者Vue3 的 mitt。主要采用了发布订阅模式来处理事件。 const EventEmitter require(events);const event new EventEmitter() // 监听(订阅)事件 event.on(test,(data)>{console.log(data) })event.emit(test,testtt) /…

Visual Studio 2013 - 高亮设置突出显示的引用

Visual Studio 2013 - 高亮设置突出显示的引用 1. 高亮设置 突出显示的引用References 1. 高亮设置 突出显示的引用 工具 -> 选项… -> 环境 -> 字体和颜色 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

Flutter 事件传递简单概述、事件冒泡、事件穿透

前言 当前案例 Flutter SDK版本&#xff1a;3.13.2 本文对 事件传递只做 简单概述&#xff0c;主要讲解&#xff0c;事件传递过程中可能遇到的问题解决&#xff0c;比如 事件冒泡、事件穿透&#xff1b; 不是我偷懒&#xff0c;是自认为没有这几位写的详细、仔细&#xff0c…

xss漏洞总结

学了好久的漏洞&#xff0c;现在来做个小总结。 目录 一、xss简要概述 二、同源策略 三、主要危害 四、存在的场景 五、攻击类型 反射型、储存型、DOM型 六、绕过技巧 七、payload标签 八、防御 一、xss简要概述 概述&#xff1a; xxs全称&#xff1a;跨站脚本&#xff08;cr…

乐优商城(九)数据同步RabbitMQ

1. 项目问题分析 现在项目中有三个独立的微服务&#xff1a; 商品微服务&#xff1a;原始数据保存在 MySQL 中&#xff0c;从 MySQL 中增删改查商品数据。搜索微服务&#xff1a;原始数据保存在 ES 的索引库中&#xff0c;从 ES 中查询商品数据。商品详情微服务&#xff1a;做…

【力扣hot100】128.最长连续序列

给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;4 解…