欢迎来到天天文库
浏览记录
ID:61967786
大小:46.50 KB
页数:8页
时间:2021-04-06
《c语言程序中关于文件的操作.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文件操作函数C语言(FILEfputcfgetcfputsfgetsfscanffprintf)在ANSIC中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedefstruct{intlevel;/*fill/emptylevelofbuffer*/unsignedflags;/*Filestatusflags*/charfd;/*Filedescriptor*/unsignedcharho
2、ld;/*Ungetccharifnobuffer*/intbsize;/*Buffersize*/unsignedchar_FAR*buffer;/*Datatransferbuffer*/unsignedchar_FAR*curp;/*Currentactivepointer*/unsignedistemp;/*Temporaryfileindicator*/shorttoken;/*Usedforvaliditychecking*/}FILE;/*ThisistheFILEobject*/ FILE这个结构包含了文件操
3、作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表函数功能fopen()打开流fclose()关闭流fputc()写一个字符到流中fgetc()从流中读一个字符fseek()在流中定位到指定的字符fputs()写字符串到流fgets()从流中读一行或指定个字符fprintf()按格式输出到流fscanf()从流中按格式读取feof()到达文件尾时返回真值ferror()发生错误时返回其值rewind()复位文件定位器到文件开始处remove()删除文件fread()从流中读指定个数的字符fwr
4、ite()向流中写指定个数的字符tmpfile()生成一个临时文件流tmpnam()生成一个唯一的文件名 下面就介绍一下这些函数1.fopen() fopen的原型是:FILE*fopen(constchar*filename,constchar*mode),fopen实现三个功能为使用而打开一个流把一个文件和此流相连接给此流返回一个FILR指针参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下表字符串含义"r"以只读方式打开文件"w"以只写方式打开文件"a"以追加方式打开文件"r+"以读/写
5、方式打开文件,如无文件出错"w+"以读/写方式打开文件,如无文件生成新文件 一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。 系统默认的是以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如_fmode=O_TEXT;就设置默认打开方式为文本模式;而_fmode=O_BINARY;
6、则设置默认打开方式是二进制模式。 我们也可以在模式字符串中指定打开的模式,如"rb"表示以二进制模式打开只读文件,"w+t"或"wt+"表示以文本模式打开读/写文件。 此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果成败,返回NULL。例: FILE*fp; if(fp=fopen("123.456","wb")) puts("打开文件成功"); else puts("打开文件成败");2.fclose() fclose()
7、的功能就是关闭用fopen()打开的文件,其原型是:intfclose(FILE*fp);如果成功,返回0,失败返回EOF。 在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况,我以前就经常犯这样的毛病。例:fclose(fp);3.fputc() 向流写一个字符,原型是intfputc(intc,FILE*stream);成功返回这个字符,失败返回EOF。例:fputc('X',fp);4.fgetc() 从流中读一个字符,原型是intfputc(FILE*stream);成功返回这个字符,失败返回EO
8、F。例:charch1=fgetc(fp);5.fseek() 此函数一般用于二进制模式打开的文件中,功能是定位到流中指定的位置,原型是intfseek(FILE*stream,longoffset,intwhence);如果成功返回0,参数offset是移动的字符数,wh
此文档下载收益归作者所有