C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法

题目

C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法

以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj

一、前言

当我们在练习文件这一章节时,因为需要从文件中读取数据,有很多数据是中文形式的,当我们在读取的时候,发现这些中文从文件里读出来然后输出就变成了乱码,如下所示,是我今天练习一道编程题时输出的乱码,我花了一个小时找错误后发现代码和格式并没有任何的错误,那么究竟是哪里出问题了呢?
在这里插入图片描述

二、解决办法

1.问题的主要原因是我们每个人的电脑编码方式不同,大家按win+r件输入cmd后右击窗口然后选择属性即可查看自己电脑的编码方式,我的电脑编码方式是GBR在这里插入图片描述

2.接下来我们需要把之前乱码的那个txt文件改一下其编码方式,我们就能使用C语言正常输出汉字了

1.首先打开这个文本文件,选择文件-另存为
在这里插入图片描述
2. 选择编码方式为ANSI,保存后即大功告成
在这里插入图片描述


三、执行结果

在这里插入图片描述

测试代码块:

#define _CRT_SECURE_NO_WARNINGS//防止scanf函数报错
#include<stdio.h>
struct x
{
	char n[32];
	int b;
};
int main()
{
	struct x a[10];
	FILE* fp = fopen("emp_salary.txt", "r");
	if (fp == NULL)
	{
		printf("open emp_salary errl!\n");
		return -1;
	}
	int i = 0;
	while (!feof(fp))
	{
		int count = fscanf(fp, "%s %d", a[i].n, &a[i].b);
		if (count == -1)
			break;//如果fscanf返回的值为-1说明读取失败。
		printf("%s %d\n", a[i].n, a[i].b);
		i++;

	}
	fclose(fp);
}

输出:

张三 6000
李四 6000
王五 6000
麻子 6000
大白 6000

C:\Users\Mr.Lee\source\repos\1\Debug\1.exe (进程 1260)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
  • 43
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立志冲海大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值