您的位置:

c语言读取中文文件,C语言读文件

本文目录一览:

c语言中怎样读出有中文的文本文件?

中文是占2个字符,你的ch只有一个字符就换行了,所以打不出来,把打印时的换行去掉就行了

#include stdio.h

#include stdlib.h

main()

{

FILE *fp;

char ch;

if((fp=fopen("d:\\test.txt","r"))==NULL)

{

printf("file cannot open!");

exit(0);

}

ch=fgetc(fp);

while(!feof(fp))

{

printf("%c",ch); /*去掉换行*/

ch=fgetc(fp);

}

fclose(fp);

}

C语言文件操作,如何读写中文文本文件

你以什么方式打开文件的~?如果是二进制的话那乱码就是因为转换字符错误。

先看一下输入输出方式是否与新的文本文件匹配,可能与文本的编码方式有关。

另外看看你的数组设置,一般认为“一行”是第一个维度,“列”是第二个维度,“页”是第三个维度。对于“一列”数据来说,它把每行的那个数据认为是一个一维数组(这个一维数组是一个行数组,只有一个数据,其余为空),那个维度可以认为是空。

这里是一个模板,你试试~

FILE *fp1,*fp2;

char ch;

fp1=fopen("文件路径,记得用转义字符转义斜线","r");

fp2=fopen("文件路径,记得用转义字符转义斜线","a");

ch=fgetc(fp1);

while(ch!=EOF)

{

fputc(ch,fp2);

ch=fgetc(fp1);

}

fclose(fp1);

fclose(fp2);

//没有加判断文件指针获取是否成功的验证,如果需要,你自己加上就行

用c语言从txt文件中读取中文并显示出来

#includestdio.h

main()

{

FILE *fp;

char ch;

if((fp=fopen("c:\\stu.txt","rt+"))==NULL)

{

printf("\nCannot open file strike any key exit!");

getch();

exit(1);

}

ch=fgetc(fp);

while(ch!=EOF)

{

putchar(ch);

ch=fgetc(fp);

}

fclose(fp);

}

C语言中如何读取文件中的汉字并将其存入数组中?

建立一个足够大的字符型数组;

以文本方式读打开原文件;

按字符方式读取文件,每读一个字符判断一下是否为汉字编码(0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。

设原文件在当前目录下,名为123.txt,举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

int main(void){

    char s[1000],ch;

    FILE *fp;

    int i=0;

    if((fp=fopen("123.txt","r"))==NULL){

        printf("Open the file failure...\n");

        exit(0);

    }

    while((ch=fgetc(fp))!=EOF)

        if(ch0)

            s[i++]=ch;

    fclose(fp);

    s[i]='\0';

    printf("%s\n",s);//打出来看看

    return 0;

}

注:原文件内容是“fjkslauti我rophk134是2315学jkal 习C语言jks新da;jus手jfkdsla”

输出是“我是学习语言新手”

c语言怎么读入中文,存储完了又怎么输出该中文?

1.首先文件的类型是file全是大写的不是file可以解决你上面出现的问题

2.fscanf("%d",n);

写成

scanf("%d",n);

3.程序的路逻辑我没看,我给你编译通过了,如果还有问题再问吧