C语言文件操作

来源:互联网 发布:mysql crea 编辑:程序博客网 时间:2024/06/03 20:19

C语言中针对文件操作标准库函数有:-----------------     

fopen 打开一个文件     

fclose 关闭一个文件     

fgetc 从文件中读取一个字符     

fputc 写一个字符到文件中去     

fgets 从文件中读取一个字符串     

fputs 写一个字符串到文件中去     

fprintf 往文件中写格式化数据     

fscanf 格式化读取文件中数据     

fread 以二进制形式读取文件中的数据     

fwrite 以二进制形式写数据到文件中去     

getw 以二进制形式读取一个整数     

putw 以二进制形式存贮一个整数     

feof 文件结束     

ferror 文件读/写出错     

clearerr 清除文件错误标志     

ftell 了解文件指针的当前位置     

rewind 反绕     

fseek 随机定位     

fopen 打开一个文件     

fclose 关闭一个文件     

fgetc 从文件中读取一个字符     

fputc 写一个字符到文件中去     

fgets 从文件中读取一个字符串     

fputs 写一个字符串到文件中去     

fprintf 往文件中写格式化数据     

fscanf 格式化读取文件中数据     

fread 以二进制形式读取文件中的数据     

fwrite 以二进制形式写数据到文件中去     

getw 以二进制形式读取一个整数     

putw 以二进制形式存贮一个整数     

feof 文件结束     

ferror 文件读/写出错     

clearerr 清除文件错误标志     

ftell 了解文件指针的当前位置     

rewind 反绕     

fseek 随机定位

**文件打开**

1.函数原型

>FILE *fopen(char *pname,char *mode)

2.功能介绍

按照mode 规定的方式,打开由pname指定的文件。若找不到由pname指定的相应文件,就按以下方式之一处理:

(1) 此时如mode 规定按写方式打开文件,就按由pname指定的名字建立一个新文件;

(2) 此时如mode 规定按读方式打开文件,就会产生一个错误。

打开文件的作用是:

(1)分配给打开文件一个FILE 类型的文件结构体变量,并将有关信息填入文件结构体变量;

(2)开辟一个缓冲区;

(3)调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件; FILE *:指出fopen是一个返回文件类型的指针函数;

3.参数说明

pname:是一个字符指针,它将指向要打开或建立的文件的文件名字符串。

mode:是一个指向文件处理方式字符串的字符指针。

mode有下列表中形态的字符串:

| 字串传 | 解释说明 |

| :-------- | :--: |

| r | 以只读方式打开文件,该文件必须存在 |

| r+ | 以读/写方式打开文件,该文件必须存在 |

|rb+ | 以读/写方式打开一个二进制文件,只允许读/写数据|

|rt+ | 以读/写方式打开一个文本文件,允许读和写|

|w |打开只写文件,若文件存在则长度清为 0,即该文件内容消失,若不存在则创建该文件|

|w+ |打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件|

|a |以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF 符保留)|

|a+ |以附加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的 EOF 符不保留)|

|wb |以只写方式打开或新建一个二进制文件,只允许写数据|

|wb+ | 以读/写方式打开或建立一个二进制文件,允许读和写|

|wt+ | 以读/写方式打开或建立一个文本文件,允许读写|

|at+ | 以读/写方式打开一个文本文件,允许读或在文本末追加数据|

|ab+ | 以读/写方式打开一个二进制文件,允许读或在文件末追加数据|

4.返回值

正常返回:被打开文件的文件指针。 

异常返回:NULL,表示打开操作不成功。


**文件关闭**

1.函数原型

>int fclose(FILE *fp);

2.功能介绍

关闭由fp指出的文件。此时调用操作系统提供的文件关闭功能,关闭由fp指出的文件;释放由fp指出的文件类型结构体变量;返回操作结果,即0或EOF。

3.参数说明

fp:一个已打开文件的文件指针.

4.返回值

正常返回:0。 

异常返回:EOF,表示文件在关闭时发生错误。


**文件的读写操作**

<1> 从文件中读取一个字符

1.函数原型

>int fgetc( FILE *fp );

2.功能介绍

从fp所指文件中读取一个字符。

3.参数说明

fp:这是个文件指针,它指出要从中读取字符的文件。

4.返回值

正常返回: 返回读取字符的代码。 

异常返回:返回EOF。例如,要从"写打开"文件中读取一个字符时,会发生错误而返回一个EOF。 


<2> 写一个字符到文件中去

1.函数原型

>int fputc( int ch, FILE *fp )

2.功能介绍

把ch中的字符写入由fp指出的文件中去。

3.参数说明

ch:是一个整型变量,内存要写到文件中的字符(C语言中整型量和字符量可以通用)。 

fp:这是个文件指针,指出要在其中写入字符的文件。

4.返回值

正常返回: 要写入字符的代码。 

异常返回:返回EOF。例如,要往"读打开"文件中写一个字符时,会发生错误而返回一个EOF。EOF。


<3> 从文件中读取一个字符串

1.函数原型

>char *fgets( char *str, int n, FILE *fp )

2.功能介绍

从由fp指出的文件中读取n-1个字符,并把它们存放到由str指出的字符数组中去,最后加上一个字符串结束符'\0'。3.参数说明

str:接收字符串的内存地址,可以是数组名,也可以是指针。 

n: 指出要读取字符的个数。 

fp:这是个文件指针,指出要从中读取字符的文件。

4.返回值

正常返回:返回字符串的内存首地址,即str的值。

异常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到了文件尾,还是发生了错误。例如,要从"写打开"文件中读取字符串,将发生错误而返回一个NULL值。


<4> 写一个字符串到文件中去

1.函数原型

>char fputs( char *str , FILE *fp )

2.功能介绍

把由str指出的字符串写入到fp所指的文件中去。

3.参数说明

str:指出要写到文件中去的字符串。 

fp:这是个文件指针,指出字符串要写入其中的文件。

4.返回值

正常返回: 写入文件的字符个数,即字符串的长度。 

异常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到了文件尾,还是发生了错误。例如,要往一个"读打开" 文件中写字符串时,会发生错误而返回一个NULL值。


<5> 往文件中写格式化数据

1.函数原型

>int fprintf( FILE *fp, char *format, arg_list )

2.功能介绍

将变量表列(arg_list)中的数据,按照format指出的格式,写入由fp指定的文件。fprintf()函数与printf()函数的功能相同,只是printf()函数是将数据写入屏幕文件(stdout)。

3.参数说明

fp:这是个文件指针,指出要将数据写入的文件。

format:这是个指向字符串的字符指针,字符串中含有要写出数据的格式,所以该字符串成为格式串。格式串描述的规则与printf()函数中的格式串相同。

arg_list:是要写入文件的变量表列,各变量之间用逗号分隔。

4.返回值

无。


<6> 从文件读出格式化数据

1.函数原型

>int fscanf( FILE *stream, char *format, ... )

2.功能介绍

从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。

3.参数说明

stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。

format -- 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。

4.返回值

正常返回,该函数返回成功匹配和赋值的个数。

异常返回,如果到达文件末尾或发生读错误,则返回 EOF。


<7> 以二进制形式读取文件中的数据

1.函数原型

>int fread( void *buffer, unsigned sife, unsigned count, FILE *fp )

2.功能介绍

从由fp指定的文件中,按二进制形式将sife*count个数据读到由buffer指出的数据区中。

3.参数说明

buffer:这是一个void型指针,指出要将读入数据存放在其中的存储区首地址。

sife:指出一个数据块的字节数,即一个数据块的大小尺寸。

count:指出一次读入多少个数据块(sife)。

fp:这是个文件指针,指出要从其中读出数据的文件。

4.返回值

正常返回:实际读取数据块的个数,即count。

异常返回:如果文件中剩下的数据块个数少于参数中count指出的个数,或者发生了错误,返回0值。此时可以用feof()和ferror()来判定到底出现了什么情况。


<8> 以二进制形式读取一个整数

1.函数原型

>int getw( FILE *fp )

2.功能介绍

从由fp指定的文件中,以二进制形式读取一个整数。

3.参数说明

fp:这是个文件指针,指出要从其中读出数据的文件。

4.返回值

正常返回:所读取整数的值。

异常返回:返回EOF,即-1。由于读取的整数值有可能是-1,所以必须用feof()或ferror()来判断是到了文件结束,还是出现了一个出错。


<9> 以二进制形式存贮一个整数

1.函数原型

>int putw( int n, FILE *fp )

2.功能介绍

以二进制形式把由变量n指出的整数值存放到由fp指定的文件中。

3.参数说明

n:要存入文件的整数。 

fp:是文件指针。

4.返回值

正常返回:所输出的整数值。

异常返回:返回EOF,即-1。由于输出的整数值有可能是-1,所以必须用feof()或ferror()来判断是到了文件结束,还是出现了一个出错。


**文件状态检查**

<1> 文件结束

1.函数原型

>int feof( FILE *fp )

2.功能介绍

该函数用来判断文件是否结束。

3.参数说明 

fp:是文件指针。

4.返回值

0:假值,表示文件未结束。

1:真值,表示文件结束。


<2> 文件读/写出错

1.函数原型

>void ferror( FILE *fp )

2.功能介绍

检查由fp指定的文件在读写时是否出错。

3.参数说明 

fp:是文件指针。

4.返回值


<3> 清除文件错误标志

1.函数原型

>void clearerr( FILE *fp )

2.功能介绍

清除由fp指定文件的错误标志。

3.参数说明 

fp:是文件指针。

4.返回值 


<3> 获取文件指针的当前位置

1.函数原型

>long ftell( FILE *fp )

2.功能介绍

取得由fp指定文件的当前读/写位置,该位置值用相对于文件开头的位移量来表示。

3.参数说明 

fp:是文件指针。

4.返回值 

常返回:位移量(这是个长整数)。 

异常返回:-1,表示出错。


**文件定位**

<1> 反绕1.函数原型

>void rewind( FILE *fp )

2.功能介绍

使由文件指针fp指定的文件的位置指针重新指向文件的开头位置。

3.参数说明 

fp:是文件指针。

4.返回值 


<2> 随机定位

1.函数原型

>int fseek( FILE *fp, long offset, int base )

2.功能介绍

使文件指针fp移到基于base的相对位置offset处。

3.参数说明 

fp:文件指针。 

offset:相对base的字节位移量。这是个长整数,用以支持大于64KB的文件。 

base:文件位置指针移动的基准位置,是计算文件位置指针位移的基点。ANSI C定义了base的可能取值,以及这些取值的符号常量。 

base取值如下表:

| 起始点 | 对应数值 | 代表文件位置 |

| :-------- | --------:| :--: |

| SEEK_SET | 0 | 文件开头 |

| SEEK_CUR | 1 | 文件当前位置 |

| SEEK_END | 2 | 文件末尾 |

4.返回值 

正常返回:当前指针位置。 

异常返回:-1,表示定位操作出错。


**关于feof()函数**

1.函数原型

>int feof( FILE *fp )

2.功能介绍

在文本文件(ASCII文件)中可以用值为-1的符号常量EOF来作为文件的结束符。但是在二进制文件中-1往往可能是一个有意义的数据,因此不能用它 来作为文件的结束标志。为了能有效判别文件是否结束,ANSI C提供了标准函数feof(),用来识别文件是否结束。

3.参数说明 

fp:文件指针。 

offset:相对base的字节位移量。这是个长整数,用以支持大于64KB的文件。 

base:文件位置指针移动的基准位置,是计算文件位置指针位移的基点。ANSI C定义了base的可能取值,以及这些取值的符号常量。

4.返回值 

返回为非0值:已到文件尾。 

返回为0值:表示还未到文件尾。


原创粉丝点击