库函数文件操作

库函数对文件的操作

文件分类:

通过流进行输入输出:文本文件(存放ASCII码)   和    二进制文件(二进制编码方式)

从用户角度: 普通文件     设备文件

文件内容: 源文件,目标文件,可执行文件,头文件,数据文件等

 

基本操作

文件指针:一个指向文件有关信息的指针,这些信息包括文件名,状态和当前位置,他们保存在一个结构体变量中。该类型为FILE 型。编写程序时可直接使用。

如: FILE *fp;          即fp是指向FILE类型的指针变量。

 

各种函数的使用

打开文件: fopen

函数原型    FILE * fopen(const char *path,cost char *mode)

作用:打开一个文件,返回指向该文件的指针

参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式

注:mode有以下值:

r 只读 文件必须存在

r+ 可读写,必须存在

rb+ 打开二进制文件,可以读写

rt+: 打开文本文件,可读写

w: 只写,文件存在则文件长度清0,文件不存在则建立该文件

w+: 可读写,文件存在则文件长度清0,文件不存在则建立该文件

a: 追加附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾, EOF符保留

a+ 附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不 保留

wb 打开二进制文件,只写

wb+: 打开或建立二进制文件,可读写

wt+: 打开或建立文本文件,可读写

at+: 打开文本文件,可读写,写的数据加在文本末尾

ab+: 打开二进制文件,可读写,写的数据加在文件末尾

mode字符可知,上述如rwa在其后都可以加一个b,表示以二进制形式打开文件

返回值:文件打开了,返回一个指向该打开文件的指针(FILE结构);文件打开失败,错误上存error code(错误代码)

注意:在fopen操作后要进行判断,是否文件打开,文件真正打开了才能进行后面的读或写操作,如有错误要进行错误处理

例:FILE *pfile=fopen(const char *filename,"rb");

 

文件的关闭:

fclose(文件指针)

功能:关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

成功返回值为0;否则返回EOF

程序结束之前应关闭所有文件,防止因为没有关闭文件儿造成数据流失。

 

文件读写:

 

fputc           ch=fputcch, fp);

作用:把一个字符写到磁盘文件(fp所指向的文件)中去,ch是要输出的字符,他可以是一个字符常量,也可以是一个字符变量。Fp是文件指针变量。

成功返回的就是输出的字符;失败返回EOF

 

Fgetc 函数   ch=fgetcfp);

作用:从指定的文件(fp所指向的文件)读入一个字符赋给ch,《注意文件必须读或读写的方式打开,当遇到文件结束符返回一个文件结束标志EOF

 

fputS函数: fputs(字符串,文件指针); fputsstr , fp;

功能: 指定的文件写入字符串,其中字符串可以是字符串常量,也可以是字符数组名,指 针或变量。

 fgets函数: fgets(字符数组名,n,文件指针)fegetsstrsizeofstr),文件指针);

功能: 从指定的文件中读出一个字符串到字符数组中。n表示所得到字符串中字符的个数(包含“\0”)。

fprintf 函数: ch=fprintf(文件类型指针,格式字符串,输出列表);

如:fprintffp,“%s”,i);

功能: 将整型变量i的值以“%s”(字符)的格式输出到fp指向的文件中。

 

fscanf 函数:fscanf(文件类型指针,格式字符串,输入列表);

如:fscanffp,“%d”,&i);

功能: 读入fp指向的文件中的i的值。

 

 

 

 

fread 函数: freadbuffersizecountfp);

freada23fp); 从fp指向的文件中每次读两个字节送入实数组a中,连续读3次。

功能: 从fp所指向的文件中读入count次,每次读size字节,读入的信息存在buffer地址中。

fwrite 函数: fwritebuffersizecountfp);

fwritea23fp);将a数组的信息每次读出两个字节到fp所指向的文件中,连续读3次。

 

 

文件的定位

Fseek 函数: fseek(文件类型指针,位移量,起始点);

如:Fseekfp-20L1);从当前位置后退20个字节。

作用:重定位文件内部的指针

参数:第一个为文件指针,第二个是指针的偏移量(要求long类型数据,常量表示位移加后缀L,第三个是指针偏移起始位置0,1,2

返回值:重定位成功返回0,否则返回非零值

需要注意的是该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移到文件中我们感兴趣的数据上,重定位主要是这个目的。

rewind 函数: int rewind(文件类型指针);

功能: 使位置指针重新返回文件开头。没有返回值。

Ftell 函数: long ftell(文件类型指针)

功能: 得到流文件中的当前位置,用相对于开头的位置来表示。当返回值为-1L时表示出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值