1.调用getc(或fgetc)和putc(或fputc)函数进行输入和输出
字符读写函数getc(或fgetc)和putc(或fputc)是以字符(字节)为单位的读写函数。每次可以从文件读出或向文件写入一个字符。
(1)输入一个字符函数getc(或fgetc)
格式:ch=fgetc(fp); //与“ch=getc(fp);”等价,ch为字符变量,参数fp为文件指针
功能:从fp指定的文件中读入一个字符,把它作为函数值返回并赋给变量ch。
对于fgetc函数的使用说明:
① fgetc函数调用时,读取的文件必须是以读或写方式打开
② fgetc函数读取字符的结果也可以不给字符变量赋值,但这样读取的字符不能保存。
③ 在文件内部有一个位置指针,用来指示文件内部的当前读写位置。使用fgetc函数每读写一次,该指针就向后移动,它不需在程序中定义说明,而是由系统自动设置的。而文件指针是指向整个文件的,必须在程序中定义,只要不重新赋值,文件指针的值是不变的。
(2)输出一个字符函数fputc(或putc函数)
格式:fputc(ch, fp); //与“putc(ch, fp);”等价
功能:将字符ch写到文件指针fp所指的文件中,如果输出成功,函数返回所输出的字符;如果输出失败,则返回一个EOF值。EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1。
对fputc函数的使用说明:
① fputc函数可以用写、读写、追加方式打开被写入的文件。ch可以是一个字符常量或字符变量。
② 如果使用写或读写方式打开一个已经存在的文件时,将清除原有的文件内容,写入的字符从文件首开始。所以,若需保留原有文件的内容,必须用追加方式打开文件。
③ 如果被写入的文件不存在时,系统自动创建文件。
2.文件结束判断函数feof
格式:int feof(ELFE *fp)
功能:判断文件是否结束。如果遇到文件结束,函数feof(fp)的值为1,否则为0。
frof函数判断的文件既可以是文本文件,也可以使二进制文件。
3.文件输入输出函数
下面介绍的函数fscanf和fprintf与前面使用的scanf和printf函数的功能相似,都是格式化读写函数。两者的区别在于函数fscanf和fprintf的读写对象不是键盘和显示器,而是磁盘文件。
(1)fscanf函数
格式:fscanf(文件指针, 格式控制字符串, 输入项表 );
功能:该函数只能从文本文件中按格式输入,函数输入的对象是磁盘上文本文件中的数据。
(2)fprintf函数
格式:fprintf(文件指针, 格式控制字符串, 输出项表 );
功能:该函数按格式将内存中的数据转换成对应的字符,并以ASCII码形式输出到文本文件中。
(3)fgets函数
格式:fgets(str, n, fp);
其中str是存放字符串的起始地址,n是一个整型变量,fp为文件指针。
功能:函数从fp所指文件中读入n-1个字符放入以str为起始地址的空间内。如果没读满n-1字符时,已读到一个换行符或文件结束标志EOF,则结束本次读操作,读入字符串的最后包含读到的换行符。因此确切地说,调用fgets函数时,最多能读入n-1个字符。
读入结束后,系统将自动在最后添加字符串结束标志‘\0’,并以str作为函数返回值。(www.xing528.com)
(4)fputs函数
格式:fputs(str, fp);
其中str为待输出的字符串,fp为文件指针。
功能:将字符串str输出到fp指向的文件中。
说明:str可以使字符串常量指向字符串的指针、或存放字符串的字符数组名等。用此函数进行输出时,字符串结束标志‘\0’并不输出,也不自动加‘\n’。输出成功的函数值为0,否则为-1(EOF)。
(5)fread函数和fwrite函数
格式:fread(buffer, size, count, fp);
fwrite(buffer, size, count, fp);
功能:fread函数和fwrite函数分别用来读、写二进制文件。
说明:
① buffer是数据块指针,对fread来说,它是内存块的首地址,输入的数据存入此内存块中;对fwrite来说,它是准备输出数据块的起始地址。
② size表示每个数据块的字节数。
③ count用来指定每读、写一次,输入或输出数据块的个数(每个数据块有size字节)。
④ fp为文件指针。
4.文件定位函数
实现随机读写的关键是按要求移动位置指针,称为文件定位。移动文件内部位置指针的函数主要有fseek函数、rewind函数和ftell函数。
(1)fseek函数
格式:fseek(fp, offset, origin);
功能:该函数用来移动文件位置指针到指定的位置上,接着的读或写操作将从此位置开始。
说明:
① fp是文件指针。
② offset是以字节为单位的位移量,为长整型数。
③ origin是起始点,用来指定位移量是以哪个位置为基础,起始点既可用标识符来表示,也可以用数字来表示。
位置指针的标识符、对应数字及对应起始点如下表所示:
对于二进制文件,当位移量为正数时,表示位置指针从指定起始点向文件尾部方向移动;当位移量为负数时,表示位置指针从指定的起始点向文件首部方向移动。
(2)rewind函数
格式:rewind(文件指针)
功能:使文件指针所指文件的位置指针重新返回到文件的开头。
rewind函数没有返回值。
(3)ftell函数
格式:long 变量名=ftell(文件指针);
功能:ftell函数返回文件指针所指文件的位置指针距离文件首的字节数,并将函数返回值赋给长整型变量。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。