精华内容
下载资源
问答
  • C语言读写txt文件编译时出现乱码

    千次阅读 2021-01-24 21:51:31
    文本文件默认的编码形式是utf-8 马赛克部分是中文 将编码形式改成ascii就好了。文件 -> 另存为->

    文本文件默认的编码形式是utf-8
    在这里插入图片描述
    马赛克部分是中文
    在这里插入图片描述
    在这里插入图片描述
    将编码形式改成ascii就好了。文件 -> 另存为->
    在这里插入图片描述

    展开全文
  • 帮忙看下 读取出来的文字全部乱码 数字正常define _CRT_SECURE_NO_WARNINGSincludeincludevoid readFile(char*** p, int* line){int totallines = 0;char buf[1024] = { 0 };FILE* fp = fopen("C:\\Users\\Desktop\\...

    帮忙看下 读取出来的文字全部乱码 数字正常

    define _CRT_SECURE_NO_WARNINGS

    include

    include

    void readFile(char*** p, int* line)

    {

    int totallines = 0;

    char buf[1024] = { 0 };

    FILE* fp = fopen("C:\\Users\\Desktop\\123.txt", "r");

    if (fp == NULL)

    {

    return -1;

    }

    while (fgets(buf,1024,fp))

    {

    totallines++;

    }

    printf("%d", totallines);

    //设置指针在文件第一个位置

    fseek(fp, 0, SEEK_SET);

    char** tmp = (char**)malloc(sizeof(char*) * totallines);

    for (int i = 0; i < totallines ; i++)

    {

    memset(buf, 0, 1024);

    fgets(buf, 1024, fp);

    tmp[i] = (char*)malloc(strlen(buf) + 1);

    memset(tmp[i], 0, strlen(buf) + 1);

    strcpy(tmp[i], buf);

    }

    *p = tmp;

    *line = totallines;

    fclose(fp);

    }

    void test() {

    char** p = NULL;

    int lines = 0;

    readFile(&p, &lines);

    for (int i = 0; i < lines; i++) {

    printf("%s", p[i]);

    free(p[i]);

    p[i] = NULL;

    }

    //释放文件内容

    free(p);

    }

    int main()

    {

    test();

    }

    回答

    你是在windows下测试的吧,windows默认gbk编码,所以导致c语言打开文件默认是以gbk的形式打开的,估计你的文件是用utf8保存的,所以导致了乱码,随便用文本工具转成gbk格式即可,还有你的readFile函数返回值声明成void咋还return -1,这啥操作我没懂。

    1b24d3cd9f80832be7393e793cc96781.png

    展开全文
  • C语言读取文件txt中的汉字出现乱码的解决方案

    千次阅读 多人点赞 2021-06-12 21:05:57
    C语言课程设计要求使用文件,然后在我进行文件操作的时候发生了一点小小的意外,读写文件中的汉字显示的居然是乱码。 经过我的一番查找之后发现居然是txt编码方式的问题。 为使计算机支持更多语言,通常使用 0x80~0...

    C语言课程设计要求使用文件,然后在我进行文件操作的时候发生了一点小小的意外,读写文件中的汉字显示的居然是乱码。
    经过我的一番查找之后发现居然是txt编码方式的问题。

    为使计算机支持更多语言,通常使用 0x80~0xFFFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中’ 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
    不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GB2312编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 JIS 编码。 [1] [2]
    不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。ANSI编码表示英文字符时用一个字节,表示中文用两个或四个字节。
    ANSI编码作为中国以及部分亚太地区的多字符编码格式,Windows系统和OS X都是提供原生支持的。但是即便如此,许多国外开发者仍然在开发笔记或者文字录入类应用的时候将ANSI编码完全忽略,只加入全球通用的UTF-8编码。
    --摘自百度百科

    在这里插入图片描述

    而我的txt文件默认编码方式是UTF-8,所以导致出现乱码的现象。
    在这里插入图片描述
    我们只要把txt文件的编码方式转换成ANSI就能正确的读写汉字了!

    展开全文
  • C语言读取txt类型文件中的汉字字符串出现乱码的解决办法 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、前言 当我们在练习文件这一章节时,因为需要从文件读取...

    题目

    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。
    要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
    按任意键关闭此窗口. . .
    
    展开全文
  • C语言文件输入输出读取中文TXT文件出现乱码

    万次阅读 多人点赞 2018-03-17 19:18:37
    今天在实现一个倒序输出文件的程序时测试了英文数字和中文,唯独中文出现了乱码,源码如下//倒序显示文件的内容 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #define CNTL_Z '\032' //文件...
  • 新建的空的txt文件读取telephone.txt到链表,显示所有信息时读出的是一堆乱码,但是txt文件里没有存放任何数据。 /*读取telephone.txt文件中的内容创建学生链表*/ ID* create() { ID *head; ID *p1,*p2; p2 = ...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼getch();return L;}}void SearchData(Stu L){Stu p;int num;p=L->next;printf("Input the ID of the student you want to search:");scanf("%d",&...
  • c语言读取docx文件乱码文件里是英文)这是正常情况吗? 感谢!! <p style="text-align:center"><img alt="" height="647" src=...
  • C语言读入txt文件中的中文字符输出乱码

    千次阅读 多人点赞 2021-01-14 13:35:27
    **记录下自己在文件操作上遇到的常见问题**输出乱码的情况fopen函数读写的相关操作 输出乱码的情况 在使用C语言时我们一般用fopen函数打开文件,如下 #include<stdio.h> int main() { FILE *fp; char a[10];...
  • C语言:从txt文本文件读取汉字打印出来是乱码

    千次阅读 多人点赞 2021-05-28 12:18:56
    问题:输出中文字符乱码 今天从txt读中文到字符串数组里输出发现中文是乱码,原本以为是读入方式的问题,结果是文件本身的问题,令人抓狂!!!!!!
  • 找不到文件\n");  exit(0);  }  for(i=0;i<5;i++)  {<!-- -->  if(fwrite(&person[0],sizeof(struct Student),1,fp)!=1)  {<!-- --> ...
  • C语言文件读取乱码

    2021-06-16 18:58:47
    乱码原因:txt文件的编码有问题 操作方法:另存为改编码,将UTF-8编码改为ANSI。
  • c\c++如何解决读取txt(文本文件)中文乱码现象

    千次阅读 多人点赞 2020-03-12 21:02:35
    最近遇到了这个问题,在网上找了一圈大神们的解决方法。 有些真的不是很理解。 现在来分享一下我找到的解决方法,希望对大家有用。 方法: 其实解决起来很方便 ...ok 现在读取TXT文件中的中文就不会乱码了。 ...
  • {printf("\n\n—————库存文件不存在!请创建"); return 0; } while(feof(fp)!=1) { fread(&book[i],sizeof(STUDENTS),1,fp); if(book[i].num==0) break; else i++; } fclose(fp); ...
  • 截取了今天的一篇中文新闻和英文新闻作为test文件,分别使用ASNI,UTF-8等不同编码模式。 使用如下代码读入一段文字然后输出到屏幕上。 #include <stdio.h> #include <string.h> int main() { ...
  • C语言文件读入乱码问题|Debug

    千次阅读 多人点赞 2019-12-23 14:13:46
    上一次实验困扰了我很久的问题,Debug了不长记性,这次又出现了呜呜呜 ...我的两个txt文件一个是UTF-8编码,一个是ANSI编码: 另存为的时候,改为ANSI就可以解决问题了,至于为什么…我还得再思考思考 ...
  • C语言读取txt文件并统计字符数

    千次阅读 2020-03-30 21:32:06
    在源文件目录下读取test.txt文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NUM 1024 int main(void){ char buf[MAX_NUM]; //字符缓冲区 FILE *fp; ...
  • 昨天用C语言写了一下文件读取,发现读出来的全是乱码。这肯定是文字编码不同导致的。    据我查证,C语言的汉字编码方式是由你电脑决定的,所以需要看一下你电脑是什么编码,来确定你需要把文本文件改成...
  • //写入数据代码#include#defineSIZE2typedefstructstu1//学生信息表{charname[10];intnum;intage;charaddr[15];...//写入文件函数voidma...//写入数据代码#include#define SIZE 2typedef struct stu1 /...
  • C语言文件获取中文乱码问题

    千次阅读 热门讨论 2020-04-17 18:27:30
    文件编码设置为ANSI即可解决,我遇到的是这样的。
  • C语言读写中文时出现乱码的解决

    千次阅读 2020-12-07 21:14:17
    C语言读取文件时中文乱码处理 之前一直以为读取中文时变成乱码时因为读取文件时字符串长度不足,或者是文件中中文格式不对,上网百度以后发现是TXT格式文件在创建时默认编码为UTF-8,这导致在读取文件时编码格式不...
  • c语言读取文件数据时最后出现一串乱码怎么办![图片](https://img-ask.csdn.net/upload/201603/11/1457701905_263874.jpg)![图片](https://img-ask.csdn.net/upload/201603/11/1457701930_642613.jpg)
  • C语言读取dat文件

    热门讨论 2013-04-16 22:46:44
    C语言文件读写。针对dat文件读写。 注意文件路径。
  • 这是一个读取写入txt文件的一个代码,我读取汉字之后fprintf到txt文件里是正常的,但是用printf输出时就变成了乱码。 求大神帮助!!!! 以下是代码和运行后样子。 07/23/1595513451_164747.png) #include ...
  • if ((fp=fopen("test.txt","w"))==NULL)/*打开只写的文本文件*/ { printf("cannot open file!"); exit(0); } printf("hello!"); if(num==0) printf("对空!"); else for( i=0;i { fputc(q->data[i],fp); printf(" ...
  • C语言中用 fwrite 向文件写入结构体时出现乱码的解决方法,由于fwrite是用于二进制文件的,所以打开直接写入的文件是会出现乱码,这时需要一个中间文件来存储临时数据,就是先将数据存储在一个临时文件,然后从这个...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼void save1() //将工具的基本信息保存至文件:"工具基本信息.file"{FILE*fp; //定义fp是一个指向FILE类型数据的指针变量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,100
精华内容 3,240
关键字:

c语言读取txt文件乱码

c语言 订阅