精华内容
下载资源
问答
  • C语言文件输入输出读取中文TXT文件出现乱码

    万次阅读 多人点赞 2018-03-17 19:18:37
    今天在实现一个倒序输出文件的程序时测试了英文数字和中文,唯独中文出现了乱码,源码如下//倒序显示文件的内容 #include<stdio.h> #include<stdlib.h> #define CNTL_Z '\032' //文件...

    今天在实现一个倒序输出文件的程序时测试了英文数字和中文,唯独中文出现了乱码,源码如下

    //倒序显示文件的内容
    #include<stdio.h>
    #include<stdlib.h>
    #define CNTL_Z '\032'   //文件结尾标记
    #define SLEN 81
    int main()
    {
    char file[SLEN];
    char ch;
    FILE *fp;
    long count,last;
    
    puts("Enter the name of the file to be processed:");
    scanf("%80s",file);
    if((fp=fopen(file,"rb"))==NULL)
    {
    printf("reverse can't open %s\n",file);
    exit(EXIT_FALLURE);
    }
    fseek(fp,0L,SEEK_END);  //定位到文件末尾
    last=ftell(fp);
    for(count=1L;count<=last;count++)
    {
    fseek(fp,-count,SEEK_END);
    ch=getc(fp);
    if(ch!=CNTL_Z && ch!='\r')
    putchar(ch);
    }
    putchar('\n');
    fclose(fp);
    return 0;
    }

    如果明白原理其实很简单,汉字ANSI编码一个汉字对应两个字节,但是传统char类型只有一个字节,即putchar()只能输出汉字的一半,也就变成乱码了。
    下面的代码很好理解了
    int main()
    {
    	FILE *p;
    	char file[50];
    	scanf("%80s", file);
    	p = fopen(file, "r");
    	int i = 0;
    	char a[1000];
    	while ((a[i] = fgetc(p)) != EOF)
    		i++;
    	a[i] = '\0';
    	puts(a);
    	printf("\n\n");
    	for (int j = 0; j <= i - 1; j++)
    		printf("%c   ", a[j]);
    	system("pause");
    	return 0;
    }

    第一次输出是正常的,而第二次输出就是乱码
    至于怎么解决,把汉字看做字符串就可以了,或者两个字节一输出

    如果你们有更好的想法,请留言告诉我
    展开全文
  • 这是一个读取写入txt文件的一个代码,我读取汉字之后fprintf到txt文件里是正常的,但是用printf输出时就变成了乱码。 求大神帮助!!!! 以下是代码和运行后样子。 07/23/1595513451_164747.png) #include ...
  • C语言中文件中文内容进行读出

    万次阅读 多人点赞 2018-03-29 12:58:34
    //对文件中文内容进行读出 按字符方式读取文件,每读一个字符判断一下是否为汉字编码(&lt;0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。 #include "stdio.h" #include "...
    
    //对文件的中文内容进行读出      按字符方式读取文件,每读一个字符判断一下是否为汉字编码(<0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。 
    
    #include "stdio.h"
    #include "stdlib.h"
    int main(void){
        char s[1000],ch;
        FILE *fp;
        int i=0;
        if((fp=fopen("awe.txt","r"))==NULL){
            printf("Open the file failure...\n");
            exit(0);
        }
        while((ch=fgetc(fp))!=EOF)
            if(ch<0)                        //按字符方式读取文件,每读一个字符判断一下是否为汉字编码(<0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。 
                s[i++]=ch;
        fclose(fp);
        s[i]='\0';
        printf("%s\n",s);//打出来看看
        return 0;
    }
    
    
    展开全文
  • 在对汉字进行操作的时候,我进行了一些字的实验,目前仅发现了一个王字,在取反后取反回去不能变成王字,我加了查看字符格式的代码,发现 王 这个字在进行第一次字符操作时候,被分解为三个字节!!!然后再操作,就...
  • C语言读取中文汉字

    万次阅读 多人点赞 2018-08-05 11:48:33
    一般的来说,一个汉字占两个字节,数字和字母都占一个字节,但是有一点是,汉字的两个字节如果转换成整型都是负数,也就是说,用按字节读取文件,然后判断字节的正负,如果一个字节对应的整型是负的,那么一连读取两...

    一般的来说,一个汉字占两个字节,数字和字母都占一个字节,但是有一点是,汉字的两个字节如果转换成整型都是负数,也就是说,用按字节读取文件,然后判断字节的正负,如果一个字节对应的整型是负的,那么一连读取两个字符,如果这个字节是正的,那么就读取这一个字节就好了

     

     

     

     

    展开全文
  • 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语言文件读写函数总结

    千次阅读 多人点赞 2018-04-30 23:51:59
    2、从文件中读取字符 fgetc 二、字符串的读写 1、字符串写入文件函数 fputs 2、从文件中读取字符 fgets 三、块数据读写 1、向文件中写入块数据fwrite 2、从文件中读取块数据fread 四、格式化读写 1、格式化...
  • C语言中文件读取和写入

    千次阅读 2018-07-17 09:02:23
    注意: 1、由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2、电脑处理文本型和二进制型的不同 (因为电脑只认识二进制格式) 在C语言中文件 //获取文件指针FILE *pFi
  • C语言文件读取和写入

    千次阅读 2019-11-09 16:32:28
    1、C语言中文件 //获取文件指针 FILE *pFile = fopen("1.txt", //打开文件的名称 "w"); // 文件打开方式 如果原来有内容也会销毁 //向文件写数据 fwrite ("hello", //要输入的文字 1,//文字每一项的大小 以为...
  • 关于C语言文件读出的汉字为乱码

    千次阅读 2019-12-31 08:48:49
    再确定代码无误的情况下 这篇文章说的很清楚, 是因为编码的方式
  • C语言读入txt文件中中文字符输出乱码

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

    千次阅读 2018-01-20 00:26:07
    https://www.cnblogs.com/kissazi2/archive/2012/10/29/2744153.html
  • 与字符串比对时,要给字符串后边 strcat上 \n 在这里插入代码片#include <stdio.h>...//读取一行到buf } void someprocess(char *buf) { printf("%s", buf);//这里的操作你自己定义 } int main
  • 问题:输出中文字符乱码 今天从txt读中文到字符串数组里输出发现中文是乱码,原本以为是读入方式的问题,结果是文件本身的问题,令人抓狂!!!!!!
  • C语言读取txt类型文件中汉字字符串出现乱码的解决办法 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、前言 当我们在练习文件这一章节时,因为需要从文件中读取...
  • 按照此链接进行操作,已解决
  • C语言Json库

    2018-09-28 13:54:33
    C语言的json库,包含了2个.c文件和2个.h文件,简单的引用,就可以使用json格式化数据。
  • C语言文件详解 引入: 主要文件操作包括以下函数: 打开文件 关闭所有打开的文件并结束程序 从文件指针指向的文件流中读取一个字符 将指定字符写到文件指针所指向的当前位置上 关闭文件流释放文件指针 fopen...
  • C语言文件读入乱码问题|Debug

    千次阅读 多人点赞 2019-12-23 14:13:46
    出错时文件读入时长这样↑ 正常情况是↓ 出现这种情况,既然可以读入数据,说明代码没有错,这样就可以查看编码格式是否一致 我的两个txt文件一个是UTF-8编码,一个是ANSI编码: 另存为的时候,改为ANSI就可以...
  • C语言文件遍历及读写

    2016-10-22 13:31:00
    c语言中遍历文件或者文件夹,系统提供的dirent和DIR结构体包含了文件的很多信息 struct dirent 结构 struct dirent { long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this ...
  • 接触C这些天久,直到今天才算是把C文件操作捋了一遍。 正文:     还是想先谈一下关于C一些文件操作的基本概念问题。 1、关于文件 文件,在我的理解:就是数据源,用于保存各种各样的数据...
  • C语言中文件读取处理

    2021-06-25 16:46:04
    字母转换并统计行数:读取一个指定的文本文件,显示在屏幕章,如果有大写字母,则改写成小写字母再输出,并根据回车符统计行数。试编写相应程序。
  • C语言如何读取.txt文件并且读取其中的字符串

    千次阅读 多人点赞 2020-04-27 14:28:33
    如果在桌面有一个huffman-coding.txt文件,其内容为: In computer science and information theory, a Huffman code is a particular type of optimal prefix code that is commonly used for lossless data ...
  • C语言文件获取中文乱码问题

    千次阅读 热门讨论 2020-04-17 18:27:30
    文件编码设置为ANSI即可解决,我遇到的是这样的。
  • 原因 编码集不一致,cmd默认是gbk编码,而文本是utf8编码。 解决 将txt文本换为用ANSI编码保存,如下面步骤所示,保存之后再运行就OK了。
  • c语言—从文件中读取一个结构体数组(txt文件)

    千次阅读 多人点赞 2020-03-16 15:47:34
    c语言读写操作很多,我给大家介绍一种我常用的方法。 //读取文件 File *fp=fopen("wxm.txt","r"); //写入文件 File *fp=fopen("wxm.txt","w"); //关闭文件 fclose(fp); ????:关闭文件一般紧接return 0之前 下面是...
  • C语言文件读写

    2020-12-24 14:55:51
    文章目录前言一、文件的打开(fopen函数)二、文件关闭(fclose函数)三、C中文文件和二进制文件的区别四、C语言以字符形式读写文件五、C语言以字符串形式读写文件六、C语言中文件复制操作七、C语言中文件常用的...
  • 首先在config.h作函数声明 #pragma once #ifdef _cplusplus extern "C" { //函数的声明 int ReadCfgFile(char* file, char* key, char* value, int* len); int WriteCfgFile(char* file, char* key, char* ...
  • C语言读写中文时出现乱码的解决

    千次阅读 2020-12-07 21:14:17
    之前一直以为读取中文时变成乱码时因为读取文件时字符串长度不足,或者是文件中中文格式不对,上网百度以后发现是TXT格式文件在创建时默认编码为UTF-8,这导致在读取文件时编码格式不对应而造成读取中文时出现乱码 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,219
精华内容 10,487
关键字:

c语言文件中读取汉字

c语言 订阅