1.文件打开函数:fopen
调用形式:文件指针名=fopen(文件名(路径),使用文件方式)
eg:FILE *fp;
fp=fopen("file1.bat","rb");
文件使用方式
“rt” 只读打开一个文本文件,只允许读数据
“wt”只打开或新建一个文本文件,只允许写数据
“at“追加打开一个文本文件,只允许在文件末写数据
”rb“只读方式打开一个二进制文件,只允许读数据
”wb“只写打开或新建一个二进制文件,只允许写数据
”ab“追加打开一个二进制文件,并在文件末尾写数据
”rt+“读写打开一个文本文件,允许读和写
”wt+“读写打开或建立一个文本文件,允许读写
”at+“读写方式打开一个文本文件,允许读,或在文件末尾追加数据
”rb+“读写打开一个二进制文件,允许读写
”wb+“读写或建立一个二进制文件,允许读写
”ab+“读写打开一个二进制文件,允许读,或在文件末尾追加数据
用”a“方式打开文件。但此时该文件必须是存在的,否则会出错。
2.fclose函数
调用的一般形式:fclose(文件指针)
eg:fclose(fp):正常完成关闭文件操作时,fclose函数返回值为0,否则有错误发生
3.一些读写函数:
字符读写函数:fgetc和fputc
字符串读写函数:fgets和fputs
数据块读写函数:fread和fwrite
格式化读写函数:fscanf和fprinf
eg:fgetc函数调用形式:
ch=fgetc(fp);从打开的文件fp中读取一个字符传送到ch中
fputc函数调用形式:
ch=fputc('d',fp);把字符d写入fp指向的文件中
rewind函数:用于把fp所指向文件的内部位置指针移动到文件头:rewind(文件指针)
fp=stdout:输出给标准输出文件stdout,及在显示器上显示文件的内容;
用法:fp=stdout;
fputc(ch,fp);
fgets:从指定文件读一个字符串到字符数组中
用法:fgets(字符数组名,n,文件指针)n表示读取的字符串不超过n-1个字符,读入的最后一个字符末尾加‘\0’标志
注意:在读取到n-1个字符前,如果遇到换行符或EOF,则读取结束;fgets函数的返回值是其字符数组的首地址
fputs:向指定文件写入一个字符串
用法:fputs(字符串,文件指针):fput(”abcd“,fp)
fread\fwrite:数据块的读\写:
用法:fread(buffer,size,count,fp)
fwrite(buffer,size,cout,fp);其中buffer是一个指针,在fread函数中它表示输入数据的首地址。在fwrite中表示
存放输出数据的首地址;size表示数据的字节数;count表示读写的数据块;fp文件指针
fread(buf,4,5,fp);从文件fp中读取4个字节(int)送人到buf中,连续读5次(及读5个int)
fscanf\fprintf函数与前面使用的scanf和printf 函数的功能相似,都是格式化读写函数。
两者的区别在于 fscanf 函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。
这两个函数的调用格式为:
fscanf(文件指针,格式字符串,输入表列);
fprintf(文件指针,格式字符串,输出表列);
eg:
fscanf(fp,"%d%s",&i,s);
fprintf(fp,"%d%c",j,ch);
4.文件的随机读取
rwind;
fseek函数:还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。
fseek函数用来移动文件内部位置指针,其调用形式为: fseek(文件指针,位移量,起始点);其中:“文件指针”指向被移动的文件。
“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB时不会出错。当用常量表示位移量时,要求加后缀“L”。
“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。
其表示方法如下
起始点 表示符号 数字表示
──────────────────────────
文件首SEEK—SET0
当前位置SEEK—CUR1
文件末尾SEEK—END 2
例如:
fseek(fp,100L,0);其意义是把位置指针移到离文件首100个字节处。还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,
故往往计算的位置会出现错误。文件的随机读写在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写。
由于一般是读写一个数据据块,因此常用fread和fwrite函数
5.文件检查
feof:文件结束检测:feof(文件指针):判断是否处于文件结束为止(返回1或0)
ferror:读写出错检测,检测文件读写是否出错(返回1或0)
clearerr:文件出错标志和文件结束标志0函数;清除出错标志和文件结束标志,使它们为0值