您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > C语言常用文件处理函数
*******************************************************************************C语言常用文件处理函数*******************************************************************************一、文件的打开与关闭———————————————————————————————————————1、fopen调用方式:FILE*fp;fp=fopen(文件名,使用文件方式);说明:(1)、使用文件方式主要有:只读(r)、只写(w)、追加(a),还有配合+使用的方式,如r+、w+、a+;(2)、默认打开的文件为文本文件,用't'表示,可以省略。如果打开二进制的文件,则使用'b'。例如:r、rt、rb等。(3)、如果不能实现打开的任务,则函数返回NULL值。———————————————————————————————————————2、fclose调用方式:FILE*fp;fclose(fp);说明:(1)、打开文件后,必须要养成关闭文件的好习惯。(2)、如果关闭文件出错,函数返回非零值,否则返回0.可以用ferror函数检查是否出错。*******************************************************************************二、文件的读写———————————————————————————————————————1、fputc调用方式:FILE*fp;charc;fputc(c,fp);说明:(1)、fputc向文件写入一个字符。(2)、输出成功则返回值就是输出的字符,如果失败则返回一个EOF。———————————————————————————————————————2、fgetc调用方式:FILE*fp;charc;c=fgetc(fp);说明:(1)、fgetc向文件读取一个字符。(2)、函数返回读取的字符,如果遇到文件结尾,则返回EOF。(3)、建议使用feof函数来判断是否文件结束。如果文件结束,函数feof返回值为1,否则为0。———————————————————————————————————————3、fread调用方式:fread(buffer,size,count,fp);说明:(1)、buffer:是一个指针。对于fread来说明,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。(2)、size:要读写的字节数。可以使用sizeof来获得字节长度。(3)、count:要进行读写多少个size字的数据项。(4)、fp:文件指针。(5)、如果fread或fwrite调用成功,则函数返回值为count的值。———————————————————————————————————————4、fwrite见fread说明。———————————————————————————————————————5、fprintf和fscanf调用方式:fprintf(文件指针,格式字符串,输出列表);fscanf(文件指针,格式字符串,输入列表);说明:(1)、在内存与磁盘频繁交换数据的情况下,建议采用fread和fwrite实现。*******************************************************************************三、文件的定位*******************************************************************************1、rewind调用方式:FILE*fp;rewind(fp);说明:(1)、rewind使文件的位置指针重新定位于文件开头。———————————————————————————————————————2、fseek调用方式:fseek(文件类型指针,位移量,起始点);说明:(1)、起始点用0、1、2代替,分别表示文件开始、文件当前位置、文件末尾。(2)、位移量指起始点为基点,向前移动的字节数。一般为long型。(3)、fseek常用二进制文件,可以实现随机读写。———————————————————————————————————————3、ftell调用方式:FILE*fp;longi;i=ftell(fp);说明:(1)、函数返回文件当前位置,如果调用出错则返回值为-1L。*******************************************************************************四、出错的检测*******************************************************************************1、ferror调用方式:FILE*fp;ferror(fp);说明:(1)、返回值为0,表示未出错,返回值为1,表示出错。(2)、同一个文件每一次调用输入输出函数,均产生一个新的ferror函数值。(3)、在执行fopen函数时,ferror函数的初始值自动置为0。———————————————————————————————————————2、clearerr调用方式:FILE*fp;clearerr(fp);说明:(1):使文件错误标志和文件结束标志为0.**************************************************************************************************************************************************************char*fcvt(doublevalue,intndigit,int*decpt,int*sign)将浮点数value转换成字符串并返回该字符串char*gcvt(doublevalue,intndigit,char*buf)将数value转换成字符串并存于buf中,并返回buf的指针char*ultoa(unsignedlongvalue,char*string,intradix)将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char*ltoa(longvalue,char*string,intradix)将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数char*itoa(intvalue,char*string,intradix)将整数value转换成字符串存入string,radix为转换时所用基数doubleatof(char*nptr)将字符串nptr转换成双精度数,并返回这个数,错误返回0intatoi(char*nptr)将字符串nptr转换成整型数,并返回这个数,错误返回0longatol(char*nptr)将字符串nptr转换成长整型数,并返回这个数,错误返回0doublestrtod(char*str,char**endptr)将字符串str转换成双精度数,并返回这个数,longstrtol(char*str,char**endptr,intbase)将字符串str转换成长整型数,并返回这个数,intmatherr(structexception*e)用户修改数学错误返回信息函数(没有必要使用)double_matherr(_mexcepwhy,char*fun,double*arg1p,double*arg2p,doubleretval)用户修改数学错误返回信息函数(没有必要使用)unsignedint_clear87()清除浮点状态字并返回原来的浮点状态void_fpreset()重新初使化浮点数学程序包unsignedint_status87()返回浮点状态字*******************************************************************************目录函数,所在函数库为dir.h,dos.h*******************************************************************************intchdir(char*path)使指定的目录path(如:C:\WPS)变成当前的工作目录,成功返回0intfindfirst(char*pathname,structffblk*ffblk,intattrib)查找指定的文件,成功返回0pathname为指定的目录名和文件名,如C:\WPS\TXTffblk为指定的保存文件信息的一个结构,定义如下:┏━━━━━━━━━━━━━━━━━━┓┃structffblk┃┃{┃┃charff_reserved[21];/*DOS保留字*/┃┃charff_attrib;/*文件属性*/┃┃intff_ftime;/*文件时间*/┃┃intff_fdate;/*文件日期*/┃┃longff_fsize;/*文件长度*/┃┃charff_name[13];/*文件名*/┃┃}┃┗━━━━━━━━━━━━━━━━━━┛attrib为文件属性,由以下字符代表┏━━━━━━━━━┳━━━━━━━━┓┃FA_RDONLY只读文件┃FA_LABEL卷标号┃┃FA_HIDDEN隐藏文件┃FA_DIREC目录┃┃FA_SYSTEM系统文件┃FA_ARCH档案┃┗━━━━━━━━━┻━━━━━━━━┛例:structffblkff;findfirst(*.wps,&ff,FA_RDONLY);intfindnext(structffblk*ffblk)取匹配finddirst的文件,成功返回0voidfumerge(char*path,char*drive,char*dir,char*name,char*ext)此函数通过盘符drive(C:,A:等),路径dir(TC,BCLIB等),文件名name(TC,WPS等),扩展名ext(.EXE,.COM等)组成一个文件名,存与path中.intfnsplit(char*path,char*drive,char*dir,char*name,char*ext)此函数将文件名path分解成盘符drive(C:,A:等),路径dir(TC,BCLIB等),文件名name(TC,WPS等),扩展名ext(.EXE,.COM等),并分别存入相应的变量中.intgetcurdir(intdrive,char*direc)此函数返回指定驱动器的当前工作目录名称drive指定的驱动器(0=当前,1=A,2=B,3=C等)direc保存指定驱动器当前工作路径的变量成功返回0char*getcwd(char*buf,iintn)此函数取当前工作目录并存入buf中,直到n个字节长为为止.错误返回NULLintgetdisk()取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)intsetdisk(intdrive)设置要使用的驱动器drive(0=A,1=B,2=C等),返回可使用驱动器总数intmkdir(char*pathname)建立一个新的目录pathname,成功返回0intrmdir(char*pathname)删除一个目录pathname,成功返回0char*mktemp(char*template)构造一个当前目录上没有的文件名并存于template中char*searchpath(char*pathname)利用MSDOS找出文件filename所在路径,此函数使用DOS的PATH变量,未找到文件返回NULL*****************************************
本文标题:C语言常用文件处理函数
链接地址:https://www.777doc.com/doc-6239313 .html