目录
一、C语言文件的概念
文件是存储在外部介质上数据的集合,是操作系统进行数据管理的基本单位。
文件分为ASCII文件(文本文件)和二进制文件。
C语言把文件看作一个字符(字节)的序列,即由一个个字符(字节)的数据顺序组成。一个输入/输出流就是一个字节流或二进制流。
文件输入/输出方式也称“存取方式”。C语言中文件两种存取方式:顺序存取和直接存取。
二、文件类型指针
可以用结构体类型定义文件类型的指针变量,一般形式:
FILE *fp; //fp是一个指向FILE结构体类型的指针变量
三、文件的打开与关闭
1、fopen( )函数
(一)调用形式
/*函数返回一个指向FILE类型的指针*/
/*无论使用哪种方式,当打开文件出现错误,fopen函数将返回*/
fp = fopen(文件名,文件使用方式);
(二)最常用的文件使用方式及其含义
①r/r++:只读/读写文本文件
②rb/rb++:只读/读写二进制文件
③w/w+:只写/读写文本文件
④wb/wb+:只读/读写二进制文件
⑤a/a++:追加/读追加数据文本文件
⑥ab/ab++:追加/读追加数据二进制文件。ab++可以设置读的起始位置。
2、fclose( )函数
调用形式
/*若对文件的操作方式为“读”方式,则经过以上函数调用后,要是文件指针与文件脱离联系,可以重新分配文件指针取直向其他文件*/
/*若对文件的操作方式为“写”方式,则系统首先把该文件缓冲区中的剩余数据全部输出到文件中,然后使文件指针与文件脱离联系*/
/*在完成了对文件的操作之后,应当关闭文件,否则文件缓冲区中的剩余数据就会丢失*/
/*当执行了关闭函数操作后,若关闭成功则函数返回0,否则返回非0*/
fclose(fp);
四、文件的读写
1、fread( )函数和fwrite( )函数
当要求一次性读写一组数据时,如一个实数或一个结构体变量的值,就可以使用fread( )函数和fwrite( )函数,它们的一般形式:
/*buffer代表的是一个指针变量*/
/*size代表的是要读写的字节数*/
/*count用来指定每读写一次,输入/输出数据块的个数(每个数据块具有size个字节)*/
/*fp是文件类型指针*/
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
2、fscanf( )函数和fprintf( )函数
fscanf( )函数和fprintf( )函数都是格式化的读和写函数,与scanf( )和printf( )函数作用相似,但fscanf( )函数和fprintf( )函数读写对象是磁盘文件上的数据。它们的一般调用形式:
fscanf(文件指针,格式字符串,输入列表);
fprintf(文件指针,格式字符串,输出列表);
3、fputs( )函数
fputs( )函数用来把字符串输出到文件中,调用形式:
/*str是要输出的字符*/
/*fp是文件指针,字符串末尾的"\0"不输出*/
fputs(str,fp);
五、文件的定位
调用形式
/*功能:使文件的位置指针重新返回到文件的开头,其中fp为文件指针,且该函数没有返回值*/
rewind(fp);