C语言中关于文件操作.docx

上传人:小飞机 文档编号:3155254 上传时间:2023-03-11 格式:DOCX 页数:5 大小:38.34KB
返回 下载 相关 举报
C语言中关于文件操作.docx_第1页
第1页 / 共5页
C语言中关于文件操作.docx_第2页
第2页 / 共5页
C语言中关于文件操作.docx_第3页
第3页 / 共5页
C语言中关于文件操作.docx_第4页
第4页 / 共5页
C语言中关于文件操作.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言中关于文件操作.docx》由会员分享,可在线阅读,更多相关《C语言中关于文件操作.docx(5页珍藏版)》请在三一办公上搜索。

1、C语言中关于文件操作C语言中关于文件操作 C语言中的文件 C语言把文件看作一个字节的序列 C语言对文件的存取是以字节为单位的 文本文件(ASCII文件) 按数据的ASCII形式存储 二进制文件 按数据在内存中的二进制形式存储 文本文件和二进制文件 缓冲文件系统 文件类型指针 FILE类型 保存被使用的文件的有关信息 所有的文件操作都需要FILE类型的指针 FILE是库文件中定义的结构体的别名 注意不要写成struct FILE 举例 FILE *fp; FILE类型 typedef struct short level; /*缓冲区满空程度*/ unsigned flags; /*文件状态标志

2、*/ char fd; /*文件描述符*/ unsigned char hold; /*无缓冲则不读取字符*/ short bsize; /*缓冲区大小*/ unsigned char *buffer; /*数据缓冲区*/ unsigned char *curp; /*当前位置指针*/ unsigned istemp; /*临时文件指示器*/ short token; /*用于有效性检查*/ FILE; 文件的打开 (fopen函数) 函数原型 FILE *fopen(char *filename, char *mode); 参数说明 filename: 要打开的文件路径 mode: 打开模式

3、 返回值 若成功,返回指向被打开文件的指针 若出错,返回空指针NULL(0) 打开模式 描 述 r 只读,打开已有文件,不能写 w 只写,创建或打开,覆盖已有文件 a 追加,创建或打开,在已有文件末尾追加 r+ 读写,打开已有文件 w+ 读写,创建或打开,覆盖已有文件 a+ 读写,创建或打开,在已有文件末尾追加 t 按文本方式打开 (缺省) b 按二进制方式打开 文件的打开模式 文件的关闭 (fclose函数) 函数原型 int fclose(FILE *fp); 参数说明 fp:要关闭的文件指针 返回值 若成功,返回0 若出错,返回EOF(-1) 不用的文件应关闭,防止数据破坏丢失 函数 功

4、能 函数 功能 fputc 输出字符 fprintf 格式化输出 fgetc 输入字符 fscanf 格式化输入 putc 输出字符 putw 输出一个字 getc 输入字符 getw 输入一个字 fwrite 输出数据块 fputs 输出字符串 fread 输入数据块 fgets 输入字符串 文件的读写 feof函数 函数原型 int feof(FILE *fp); 参数 fp:文件指针 返回值 若文件结束,返回非零值 若文件尚未结束,返回0 fputc/putc函数 函数原型 int fputc(int c, FILE *fp); int putc(int c, FILE *fp); 参数

5、 c :要输出到文件的字符 fp:文件指针 返回值 若成功,返回输出的字符 若失败,返回EOF fgetc/getc函数 函数原型 int fgetc(FILE *fp); int getc(FILE *fp); 参数 fp:文件指针 返回值 若成功,返回输入的字符 若失败或文件结束,返回EOF x月x日 22:37于实验室 /*中英汉字显示程序*/ char far* get_ascii_rom(unsigned int reg_bx)/*获得ROM字符集首址*/ struct REGPACK reg; reg.r_ax=0x1130; reg.r_bx=reg_bx; intr(0x10,

6、®); return MK_FP(reg.r_es,reg.r_bp); void textout(int x,int y,unsigned char *s,int color) /*功能:中-英混合输出函数,在屏幕以(x,y)为左上角输出color色的s中-英混合字符串 限制:生成的EXE文件同级目录要有hzk16文件,否则其中的中文将看不到 */ unsigned char mat32,i,j,is_hz,can_put,far *ROM; unsigned long position; ROM=get_ascii_rom(0x0600);/*获取8*16 ASCII字符ROM指针*

7、/ while(*s!=0)/*开始输出文字循环*/ if(*s0xa0&*(s+1)0xa0)/*分支语句,判断当前指向的是中文还是英文内码*/ /*若为中文读取中文字模*/ if(fp!=NULL)/*打开汉字库文件成功则拷贝中文字模到mat*/ i=*s-0xa0;/*计算区号*/ j=*(s+1)-0xa0;/*计算位号*/ position=(94*(i-1)+(j-1)*32l;/*计算中文字模位置*/ fseek(fp,position,SEEK_SET);/*移动文件指针到字模位置*/ fread(mat,32,1,fp);/*读取为中文字模*/ else memset(mat

8、,0,32);/*否则将输出空白*/ is_hz=1;/*为中文*/ else /*若为英文读取英文字模*/ for(i=0;i16;i+) mati*2=*(ROM+(*s)*16+i);/*字模左边8位为ASCII字模*/ mati*2+1=0;/*字模右边8位补0*/ is_hz=0;/*为英文*/ /*开始输出字模了,将读取的中文或英文字模显示*/ for(j=0;j16;j+) for(i=0;ii%8)&mat2*j+i/8)/*对于字模相应位为1则输出*/ putpixel(i+x,y+j+(1-is_hz)*4,color);/*将英文字模显示时下移4pixel,这样看起来美观些*/ if(is_hz) x+=18;/*中文间距为18pixel*/ s+=2; else x+=9;/*英文间距为9pixel*/ s+;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号