100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法

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

时间:2022-04-02 23:47:56

相关推荐

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大白 6000C:\Users\Mr.Lee\source\repos\1\Debug\1.exe (进程 1260)已退出,代码为 0。要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。按任意键关闭此窗口. . .

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。