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;然后枚举所有可以从数据…

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高效…

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…

乐优商城(九)数据同步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 解…

JavaSE:类与对象

目录 一、前言 二、类与对象的介绍 1.类的定义格式 三、类的实例化 1.类的实例化介绍 2.成员初始化 3.类中方法的实现 四、封装 1.private实现封装 2.getter和setter方法 五、构造方法的使用 1.构造方法的介绍 2.构造方法的特性 六、this引用 1.this的介绍 2.th…

rfc793-page36

rfc793原文 If the connection is in any non-synchronized state (LISTEN,SYN-SENT, SYN-RECEIVED), and the incoming segment acknowledgessomething not yet sent (the segment carries an unacceptable ACK), orif an incoming segment has a security level or compart…

jQuery详细教程

文章目录 前言一、安装与快速上手二、直接寻找标签1.ID选择器2.类选择器/样式选择器3.标签选择器4.层级选择器5.多选择器6.属性选择器 三、间接寻找标签1.找兄弟2.找父子 四、值操作五、事件六、样式操作 前言 jQuery是一个快速、简洁的JavaScript框架&#xff0c;是继Prototyp…

基于树莓派实现 --- 智能家居

最效果展示 演示视频链接&#xff1a;基于树莓派实现的智能家居_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Tr421n7BM/?spm_id_from333.999.0.0 &#xff08;PS&#xff1a;房屋模型的搭建是靠纸板箱和淘宝买的家居模型&#xff0c;户型参考了留学时短租的公寓~&a…

【prompt六】MaPLe: Multi-modal Prompt Learning

1.motivation 最近的CLIP适应方法学习提示作为文本输入,以微调下游任务的CLIP。使用提示来适应CLIP(语言或视觉)的单个分支中的表示是次优的,因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中,我们提出了针对视觉和语言分支的多模态提示学习(MaPLe),以…

CMake简单使用03资源拷贝

有如下的工代码&#xff1a; 可见bin里面没有任务文件 修改主CMakeLists.txt #需求的最低cmake程序版本 cmake_minimum_required(VERSION 3.2)#本工程的名字&#xff0c;- OpenGL.sln project(OpenGL)#本工程支持的c版本 set(CMAKE_CXX_STANDARD 17)#把需要拷贝的资源路径都放…

大小端是什么?怎么判断?(百度笔试题)

目录 一、前言二、什么是大小端&#xff1f;三、为什么有大小端之分呢&#xff1f;四、判断机器是大端还是小端--百度笔试题 一、前言 先看一段代码&#xff1a; #include<stdio.h> int main() {int n 0x11223344;return 0; }二、什么是大小端&#xff1f; 其实超过⼀…