FILE文件流的中对fopen、fseek、fread、fwrite,fprintf、fputs、fgets的理解

目前课题中使用,记录下来方便以后查看。

 

fopen

fopen函数用来打开一个文件,其调用的一般形式为:

FILE * fopen(const char *path,const char * mode);

fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分。如:

"B:TEST.DAT"

"C://TC//TEST.DAT"

如果将路径写成"C:/TC/TEST.DAT"是不正确的, 这一点要特别注意。

第二个形式参数表示打开文件的类型。关于文件类型的规定参见下表。

表 文件操作类型

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

字符                含义

────────────────────────────

"r"           打开文字文件只读

"w"           创建文字文件只写

"a"           增补, 如果文件不存在则创建一个

"r+"          打开一个文字文件读/写

"w+"          创建一个文字文件读/写

"a+"          打开或创建一个文件增补

"b"           二进制文件(可以和上面每一项合用)

"t"           文这文件(默认项)

返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。

fseek

函数名: fseek

功 能: 重定位文件流上的文件指针位置

用 法: int fseek(FILE *stream, longoffset, int fromwhere);

stream:文件指针,必须为已打开的文件

offfset:设定的偏移量,正数表示正向偏移

fromwhere:偏移开始的位置。有三种取值

SEEK_SET: 文件开头
   SEEK_CUR:当前位置
   SEEK_END:文件结尾

描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值: 成功,返回0,否则返回其他值。

 

fread

函数原型:size_t fread(void*buff,size_t size,size_t count,FILE* stream)

作用:从文件中读入数据到指定的地址中

参数:第一个参数为接收数据的指针(buff),也即数据存储的地址

第二个参数为单个元素的大小,即由指针写入地址的数据大小,注意单位是字节,通俗理解为一次读取多大的字节

第三个参数为元素个数,一共要读取多少元素,即一共读取的字节数为size*count

第四个参数为提供数据的文件指针,该指针指向文件内部数据

返回值:读取的总数据元素个数

注意:文件指针是移动一个指针,读取一个字节,因此读取完要求字节数后,指针停留在最后一个字节处,直到下次读取或者fseek才会移动指针。

 

fwrite

size_t fwrite(const void* buffer,size_t size, size_t count, FILE* stream);

作用:向文件写入一个数据块

返回值:返回实际写入的数据块数目

(1)buffer:是一个指针,是准备要写入文件的数据地址

(2)size:要写入文件的一个数据项的字节个数;

(3)count:要进行写入size字节的数据项的个数,一共要写入size*count个字节;

(4)stream:目标文件指针;

(5)返回实际写入的数据项个数count。

 

fprintf

fprintf( ) 函数中格式化的规定与printf( ) 函数相同,所不同的只是 fprintf()函数是向文件中写入。而printf()是向屏幕输出。

fprintf() 函数的返回值为实际写入文件中的字节个数(字节数)。如果写错误, 则返回一个负数。

int fprintf(FILE *stream, char*format, <variable-list>);

例如 b= fprintf(fp,"%d",a);指像fp指向的文件里打印一个整数,值为a,b是4.

 

fputs、fputc

int fputs(char *string, FILE*steam);

int fputc(int ch, FILE*steam);

fputs()函数返回0时表明将string指针所指的字符串写入steam指向的文件中的操作成功, 返回非0时, 表明写操作失败。

fputc()函数返回一个向steam指向的文件中写字符ch的值, 返回0表示写操作成功, 否则返回EOF(文件结束结束其值为-1,

 

fgets、fgetc

char fgets(char *string, intn, FILE *steam);

int fgetc(FILE *steam);

fgets()函数从文件中读取至多n-1个字符(n用来指定字符数), 并把它们放入string指向的字符串中, 在读入之后自动向字符串未尾加一个空字符, 读成功返回string指针, 失败返回一个空指针。

fgetc()函数返回文件当前位置的一个字符, 读错误时返回EOF。

 

 

 


你可能感兴趣的:(FILE文件流的中对fopen、fseek、fread、fwrite,fprintf、fputs、fgets的理解)