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

作者&投稿:种郝 (若有异议请与网页底部的电邮联系)
C语言中如何读取文件中的汉字并将其存入数组中?~

为了方便文本文件的操作,标准函数编程库提供了,行读写函数,
char
*gets(char
*s);
char
*fgets(char
*s,
int
n,
FILE
*stream);
-----------------------精通unix下c语言编程与项目实践P66
行输出函数族
int
puts(const
char
*s);
int
fputs(const
char
*s,
FILE
*stream);
-----------------------精通unix下c语言编程与项目实践P67
块读写函数
能够输入输出任意数量的字符,在操作二进制文件时常常使用,
fread
和fwrite
块读写函数经常操作二进制文件。
-----------------------精通unix下c语言编程与项目实践P70
再有就是编码的知识了
当你输出的ascii码在汉字的范围内的时候,汉字系统会认识到
然后把相应的ascii码变成汉字。

用system
调用
DOS
DIR
命令就可以了:
system
(
"dir
sss_*
/B
>
log.txt");
这就把
前缀为sss_的文抄件
文件名
存入
log.txt
文件了。
一个名字袭一行,没有别的东西。
你再
读出zhidao来。
#include

main()
{
FILE
*fp;
char
str[30][50];
//
假定文件数不超过30个
int
i,n=0;
system("dir
sss_*
/B
>
log.txt");
fp=fopen("log.txt","r");
while(1){
if
(
fgets(str[n],50,fp)==NULL)
break;
str[n][strlen(str[n])-1]='\0';
//
加一个字符串结束符
n++;
}
fclose(fp);
for
(i=0;i<n;i++)
printf("%s
",str[i]);
}

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

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

  3. 按字符方式读取文件,每读一个字符判断一下是否为汉字编码(<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...
");
        exit(0);
    }
    while((ch=fgetc(fp))!=EOF)
        if(ch<0)
            s[i++]=ch;
    fclose(fp);
    s[i]='\0';
    printf("%s
",s);//打出来看看
    return 0;
}

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

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



为了方便文本文件的操作,标准函数编程库提供了,行读写函数,
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
-----------------------精通unix下c语言编程与项目实践P66
行输出函数族
int puts(const char *s);
int fputs(const char *s, FILE *stream);
-----------------------精通unix下c语言编程与项目实践P67
块读写函数
能够输入输出任意数量的字符,在操作二进制文件时常常使用,
fread 和fwrite
块读写函数经常操作二进制文件。
-----------------------精通unix下c语言编程与项目实践P70

再有就是编码的知识了
当你输出的ascii码在汉字的范围内的时候,汉字系统会认识到
然后把相应的ascii码变成汉字。

汉字处理跟字符串处理是一样的。一个汉字就是两个字符。

一个汉字就是两个字


在C语言中,举例说明如何打开一个文本文件,并读入文件中的数据
1.首先,使用VS构建一个新的空项目,然后直接单击ok。2.单击newitem选项为c编译器创建一个新的c文件,并输入main.c文件。3.然后创建一个新的返回C文件,如下所示。4.将上面的参考代码复制到main.c文件中,并直接编译它。5、编译完成后,运行exe程序,执行后显示TXT文件内容。

利用C语言读取含文件头的txt文本并将学生信息和成绩分别保存到数组...
if(!sLine) break;\/\/文件读取到末尾或异常 if(sLine[0]=='#' && sLine[1]=='-' && sLine[2]=='-' && sLine[3]=='-'&& sLine[4]=='-'&& sLine[5]=='-'){ flag++;continue;} if(flag==2 && sLine[0]=='~' && sLine[1]=='A' && sLine[2]==' ' && sLine[3]=...

C语言中如何读取文件中的汉字并将其存入数组中?
} while((ch=fgetc(fp))!=EOF) if(ch<0) s[i++]=ch; fclose(fp); s[i]='\\0'; printf("%s\\n",s);\/\/打出来看看 return 0;}注:原文件内容是“fjkslauti我rophk134是2315学jkal 习C语言jks新da;jus手jfkdsla”输出是“我是学习语言新手”...

c语言逐行读取文件?
读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用...

C语言如何读取TXT文件并存入数组中?
FILE *fp;\/\/文件指针 fp = fopen("in.txt", "r");\/\/以文本方式打开文件。if(fp == NULL) \/\/打开文件出错。return -1;while(fscanf(fp, "%d", &v[i]) != EOF) \/\/读取数据到数组,直到文件结尾(返回EOF)i++;fclose(fp);\/\/关闭文件 for(j = 0; j < i; j ++)\/\/循环输出...

标准C语言中如何一次读取某文件中的多行数据
有很多种方式可以一次性读取多行数据,具体如何使用,取决于文件内容格式。一、以fscanf读取。fscanf读取时,默认会到空白字符截止。所以如果文件中不存在其它空白字符,那么可以以fscanf实现一次性读取多行的效果,比如文件中存储为 12.3name那么要一次性读取这三行数据,可以使用:int a;float b;char c[...

c语言如何读取文件并输出
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。2、例程:include...

如何用C语言读写文件
c语言读写文件程序:include "stdio.h"include <stdlib.h>main(){ FILE *fp1;\/\/定义文件流指针,用于打开读取的文件 FILE *fp2;\/\/定义文件流指针,用于打开写操作的文件 char text[1024];\/\/定义一个字符串数组,用于存储读取的字符 fp1 = fopen("d:\\\\a.txt","r");\/\/只读方式打开文件a....

用c语言如何读取和保存jpg图片文件?
size=ftell(fp);\/\/获取文件指针偏移量,即文件大小。fclose(fp);\/\/关闭文件。return size;} int main (){ int size=0;size=file_size("qw");printf("%d\\n",size);FILE * pFile,*qw;char *buffer=(char*)malloc(sizeof(char)*size);qw =fopen("qw","r");pFile = fopen ( "...

易语言读取ini文件内容?
.版本 2 .程序集 窗口程序集1 .程序集变量 配置, 文本型 .子程序 __启动窗口_创建完毕 配置 = 读配置项 (取运行目录 () + “\\1.ini”, “Account”, “Account_ID”, ).如果真 (配置 = “2”)编辑框1.内容 = 读配置项 (取运行目录 () + “\\1.ini”, “Account”, “ID2...

运河区18121001390: 用c语言从txt文件中读取中文并显示出来 -
校瑶奕利: 很简单的一个功能,现在写的是将源文件写死的 #include "stdafx.h" int main(void) {char filename;FILE* file=fopen("F:\\wz-mac.txt","r"); //打开文件 while((filename=fgetc(file))!=EOF){printf("%c",filename); //打印内容到屏幕}return 0; }

运河区18121001390: 在VC6.0 用C语言 把汉字存入文件或从文件中读取 -
校瑶奕利: /* Note:Your choice is C IDE */ #include <stdio.h>void main( void ) {FILE *stream;char list[30];int i, numread, numwritten;if( (stream = fopen( "C:\\my.txt", "r+t" )) != NULL ){numread = fread( list, sizeof( char ), 25, stream );printf( "读取...

运河区18121001390: c语言 怎么读文件中的汉字
校瑶奕利: FILE *fp; double dbnum[100]; fp = fopen("a.dat", "r"); if(fp != NULL) for(int i = 0; i < 100; i++) { if(!scanf("%f", &num[i])) { break;

运河区18121001390: c语言 中文字符如何读取和输出? -
校瑶奕利: 因为一个中文占两个字节,所以,应该用宽字符型变量来保存 即wchar_t类型... wchar_t的具体使用方法,你可以到MSDN去查看...

运河区18121001390: c语言 如何读取中文字符串 -
校瑶奕利: 可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc(); 先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符.读取全部文本中全部字符可以使用一个while循环...

运河区18121001390: C语言中如何读取文件中的汉字并将其存入数组中? -
校瑶奕利: 为了方便文本文件的操作,标准函数编程库提供了,行读写函数,char*gets(char*s);char*fgets(char*s,intn,FILE*stream);-----------------------精通unix下c语言编程与项目实践P66行输出函数族intputs(constchar*s);intfputs(constchar*s,FILE*stream)...

运河区18121001390: c语言中怎么读取文件中的字符并更改 -
校瑶奕利: 流程如下:1:fopen(old_file,"r");打开原文件2:fopen(new_file,"w");建立临时文件3:使用fread或者其他你用着顺手的函数读取原文件内容4:判断是否到文件结尾,若是,则跳至第8步, 否则执行第5步5:判断读取到的内容是否是你要修改的6:若是,则修改后写入临时文件;若否, 则不做修改写入临时文件.7:跳回第3步8:关闭FILE指针9删除原文件, 将临时文件重命名为原文件名.结束.

运河区18121001390: 用C语言怎么读取一段文字并输出? -
校瑶奕利: #include<stdio.h> void main() {char ch; FILE *fp1,*fp2; if((fp1=fopen("c:\\file1.txt","r"))==NULL) { printf("cannot open file1\n"); exit(0); } if((fp2=fopen("c:\\file2.txt","w"))==NULL) { printf("cannot open fiole2\n"); exit(0); } ch=fgetc(fp1); ...

运河区18121001390: c语言怎么读入中文,存储完了又怎么输出该中文? -
校瑶奕利: 用wchar_t类型定义BUF,用fgetws()函数来从文件中读取, 用wprintf()函数来输出, 具体查MSDN(wchar_t类型及上面两函数属于ANSI C标准函数)

运河区18121001390: c语言 如何读取中文字符串 -
校瑶奕利: 用fscanf函数按格式读取到结构体中,用strcmp比较字符是否相同,做查询,找到记住行数读取后面的字段的参数.以下是我以前作业中有关你这个的截取:读取:void read(void){ FILE *cj; int i...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网