ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:21.94KB ,
资源ID:8507013      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8507013.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言文件操作函数大全超详细docx.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言文件操作函数大全超详细docx.docx

1、C语言文件操作函数大全超详细docxfopen (打开文件) 相关函数open, fclose表头文件 #include定义函数 FILE * fopen (const char * path, const char * mode);两数说明参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流 形态。mode有下列几种形态字符串:r打开只读文件,该文件必须存在。r+打开可读写的文件,该文件必须存在。w打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建 立该文件。w+打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在

2、则建立该文件。a以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数 据会被加到文件尾,即文件原先的内容会被保留。a+以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入 的数据会被加到文件尾后,即文件原先的内容会被保留。复制代码代码如下:r Open text file for reading. The stream is positioned at the beginning o f the file.r+ Open for reading and writing. The stream is positioned at the begin

3、ningof the file.w Truncate file to zero length or create text file for writing The stream is positioned at the beginning of the file.w+ Open for reading and writing The file is created if it does not exist, otherwise it is truncatod The stream is posi -tioned at the beginning of the file.a Open for

4、appending (writing at end of file). The file is created ifit does not exist. The stream is positioned at theend of the fi 1 e.a+ Open for reading and appending (writing at end of file). The file is cr eated if it does not exist. The initial file posi -tion for reading is at the beginning of the file

5、, but output is always a ppended to the end of the file.上述的形态字符串都可以再加一个b字符,如rb、w+b或ab +等组合,加入b字符用來告 诉两数库打开的文件为二进制文件,而非纯文字文件。不过在POS1X系统,包含Linux都会 忽略该字符。由fopen()所建立的新文件会具有S_IRUSR| S_IWSR| S_IRGRP| S_IWGRP| S_IRO TH | S_IWOTH (0666)权限,此文件权限也会参考umask值。返回值文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL, 并把错误代码存在e

6、rrno中。附加说明一般而言,开文件后会作一些文件读収或写入的动作,若开文件失败,接下来的 读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。范例复制代码代码如下:#include main ()FILE * fp;fp二fopen( noexist”,” a+”);if(fp=二NULL) return;fclose(fp);1. fprintf功能:传送格式化输出到一个文件中表头文件:#include函数原型:int fprintf (FILE stream, char format , argument,FILE* 个FILE型的指针char*格式化输入函数,和print

7、f里的格式一样返回值:成功时返凹转换的字节数,失败时返凹一个负数fp = fopen(/local/test. c,a+);fprintf (fp, %sn, str);2. fscanf功能:从一个流中执行格式化输入表头文件:#include函数原型:int fscanf (FILE stream, char *format, argument.;FILE* 一个FILE型的指针char*格式化输出函数,和scanf里的格式一样返回值:成功时返冋转换的字节数,失败时返冋-个负数fp = fopen(/local/test, c, ;fscanf (fp, %s, str);3. cl ear

8、 err (清除文件流的错误旗标)相关函数feof表头文件 #include定义函数 void clearerr (FILE * stream);函数说明clearerr ()清除参数stream指定的文件流所使川的错误旗标。返回值4. fclose (关闭文件)相关函数 close, fflush, fopen, setbuf表头文件 #include定义函数 int fclose(FILE * stream);函数说明fclose()用来关闭先前fopen() Jj开的文件。此动作会让缓冲区內的数据写入文件中,并释放系统所提供的文件资源。返回值若关文件动作成功则返回0,有错误发生时则返回E

9、OF并把错误代码存到errnoo错误代码EBADF表示参数stream非已打开的文件。范例请参考fopen ()。5. fdopen (将文件描述词转为文件指针)相关函数 fopen, open, fclose表头文件 #include定义函数 FILE * fdopen(int fildes, const char * mode);函数说明fdopen()会将参数fildes的文件描述词,转换为对应的文件指针后返冋。参数mode字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于 mode字符串格式请参考fopen ()。返回值转换成功时返回指向该流的文件指针。失败则

10、返回NULL,并把错误代码存在errno 中。范例复制代码代码如下:#includemain ()FILE * fp =fdopen(0, ” w+” );fprintf(fp, %s/n”,” hello!);fclose(fp);执行hello!6. feof (检查文件流是否读到了文件尾)相关函数 fopen, fgetc, fgets, frcad表头文件 #include定义函数 int feof (FILE * stream);函数说明feof()用來侦测是否读取到了文件尾,尾数stream为fopen ()所返回之文件指针。如果已到文件尾则返回非零值,具他情况返回0。返回值返回非

11、零值代表已到达文件尾。7. fflush (更新缓冲区)表头文件 #include定义函数 int fflush (FILE* stream);函数说明fflushO会强迫将缓冲区内的数据写冋参数stream指定的文件屮。如果参数str earn为NULL, fflush()会将所冇打开的文件数据更新。返回值成功返回0,失败返回EOF,错误代码存于errno中。错误代码EBADF参数stream指定的文件未被打开,或打开状态为只读。其它错误代码参考 write ( ) o& fgetc (由文件中读取一个字符)相关函数 open, fread, fscanf, getc表头文件 include

12、定义函数 nt fgetc (FILE * stream);函数说明fgetc ()从参数stream所指的文件中读取一个字符。若读到文件尾而无数据吋便 返回EOFo返回值getcO会返回读取到的字符,若返回EOF则表示到了文件尾。范例复制代码代码如下:#i ncludemain ()FILE *fp;int c;fp二fopen( exist”,” r);while(c=fgetc(fp)!=E0F) printf( %c , c);fclose(fp);9. fgets (由文件中读取一字符串)相关函数 open, fread, fscanf, getc表头文件 include定义函数 h

13、ar * fgets (char * s, int size, FILE * stream);函数说明fgotsO用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间, 直到出现换行字符、读到文件尾或是已读了 size-1个字符为止,最后会加上NULL作为字符 串结束。返回值getsO若成功则返回s指针,返回NULL则表示冇错谋发生。范例复制代码代码如下:#includemain()char s80;fputs(fgets(s, 80, stdin), stdout);执行 this is a test /*输入*/this is a test /*输出*/表头文件 #incl

14、ude定义函数 int fileno(FILE * stream);函数说明fileno ()用来取得参数stream指定的文件流所使用的文件描述词。 返回值返回文件描述词。范例复制代码代码如下:#includemain()FILE * fp;int fd;fp=fopen( /etc/passwd,” r”);fd=fileno(fp);printf( fd=%d/n”,fd);fclose(fp);执行fd=312. fputc (将一指定字符写入文件流中)相关函数 fopen, fwrite, fscanf, putc表头文件 #include定义函数 int fputc(int c,

15、FILE * stream);函数说明fputc会将参数c转为unsigned char后写入参数stream指定的文件中。返回值fputc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。范例复制代码代码如下:#includemain ()FILE * fp;char a26二” abcdefghijklmnopqrstuvwxyzn ;int i;fp= fopen( “noexist”,” w”);for(i=0;i26;i+)fputc (a, fp);fclose(fp);13. fputs (将一指定的字符串写入文件内)相关函数 fopen, fwrite, fsca

16、nf, fputc, putc表头文件 #include定义函数 int fput s (const char * s, FILE * st ream);函数说明fputs()用来将参数s所指的字符串写入到参数Stream所指的文件内。返回值若成功则返回写出的字符个数,返回EOF则表示有错误发生。范例请参考fgets ()。fread (从文件流读取数据)表头文件 #include定义函数 size_t fread (void * ptr, size_t size, size_t nmemb, FILE * stream);函数说明fread()用来从文件流屮读取数据。参数stream为已打开

17、的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数sizenmcmb来决定。Fread0会返回 实际读取到的nmemb数目,如果此值比参数nmemb来得小,贝0代表可能读到了文件尾或有 错谋发生,这时必须用feof()或ferror 0来决定发生什么情况。返回值返回实际读取到的nmemb数冃。附加说明范例复制代码代码如下:#include#define nmemb 3struct testchar name20;int size;snmemb;int main() FILE * stream;int i;stream = fopen( /tmp/fwrite , ” r)

18、;fread(s, sizeof(struct test), nmcmb, stream);fclose (stream);for (i 二0;i 5memb;i +) printf ( uname%d =%-20s: size%d =%d/n, i, s. name, i, s. size);执行nameO=Linux! size0=6namel=FreeBSD! size1=8name2=Windows2000 size2=1114. freopen (打开文件)相关函数fopen, fclose表头文件 #include定义函数 FILE * freopen (const char *

19、path, const char * mode, FILE * stream);函数说明参数path字符串包含欲打开的文件路径及文件名,参数mode请参考f()pen()说 明。参数stream为已打开的文件指针。Freopen()会将原stream所打开的文件流关闭,然 后打开参数path的文件。返回值文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL, 并把错误代码存在errno中。范例复制代码代码如下:#includemain()FILE * fp;fp=fopen( /etc/passwd,” r”);fp=freopen( /etc/group” , ” r

20、” , fp);fclose(fp);15. fseek (移动文件流的读写位置)相关函数 rewind, ftel 1, fgetpos, fsetpos, lseek表头文件 #include定义函数 int fseek(FILE * stream, 1 ong offset, int whence);函数说明fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。参数whence为下列其屮一种:SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR以目前的读写位置往后增加offset

21、个位移量。SEEK.END将读写位證指向文件尾后再增加offset个位移量。当whence值为SEEK_CUR或SEEK_END时,参数offset允许负值的出现。下列是较特别的使用方式:1) 欲将读写位置移动到文件开头吋:fseek (FILE stream, 0, SEEK.SET);2) 欲将读写位置移动到文件尾吋:fseek (FILE stream, 0, OSEEK END);返回值当调用成功吋则返回0,若有错误则返冋-1, errno会存放错误代码。附加说明fseek()不像1 seekO会返回读写位置,因此必须使用ftell ()來取得目前读写的 位置。范例复制代码代码如下:#

22、include mai n ()FILE * stream;long offset;fpos t pos;stream二fopen( u/etc/passwdv , r” );fseek (stream, 5, SEEK_SET);printf( offset=%d/n” , ftell(stream);rewind(stream);fgetpos(stream, &pos);printf ( offset=%d/n, pos);pos=10;fsetpos(stream, &pos);printf( offset = %d/n” , ftell(stream);fclose(stream);

23、执行 offset = 5offset =0offset=1016. ftell (取得文件流的读取位置)相关函数 fseek, rewind, fgetpos, fsetpos表头文件 #include定义函数 long ftell (FILE * stream);函数说明ftell ()用来取得文件流冃前的读写位置。参数stream为已打开的文件指针。返冋值当调用成功时则返冋日前的读写位置,若有错谋则返Inl-berrno会存放错谋代码。 错误代码EBADF参数stream无效或可移动读写位置的文件流。范例参考fseekO o17. fwrite (将数据写至文件流)相关函数 fopen,

24、 fread, fseek, fscanf表头文件 #include定义函数 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); 函数说明fwriteO用来将数据写入文件流屮。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。FwriteO会返回实 际写入的nmemb数冃。返回值返回实际写入的nmemb数H。范例复制代码代码如下:#include#define set_s (x, y) strcoy(sx. name, y);s

25、x. size=strlen(y);#defino nmemb 3struct testchar name20;int size;snmemb;main ()FILE * stream;set_s(0, ” Linux!”);set_s(1, ” FreeBSD!);set_s(2, ” Windows2000. ” );stream二fopen( /tnip/fwrite”,” v”);fwri te(s, si zeof(struct test), nmemb, stream);fclose(stream);执行参考fread ()。18. getc (由文件中读取一个字符)和关函数 re

26、ad, fopen, fread, fgetc表头文件 #include定义函数 int getc (FILE * stream);两数说明getc ()用来从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时 便返回EOF。虽然getcO与fgetcO作用相同,但getc()为宏定义,非真正的函数调用。 返回值getcO会返回读取到的字符,若返回EOF则表示到了文件尾。范例参考fgetc () o19. getchar (由标准输入设备内读进一字符)相关函数 fopen, fread, fscanf, getc表头文件 #include定义函数 int getchar (voi

27、d);函数说明getchar ()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返冋。返回值getchar 0会返I叫读取到的字符,若返1川EOF则表示有错谋发生。附加说明getchar ()dh真正函数,而是getc (stdin)宏定义。范例复制代码代码如下:#includemain ()FILE * fp;int c, i;for (i=01i5; i+)c=getchar();putchar (c);执行1234 /*输入*/1234 /*输出*/20. gets (由标准输入设备内读进一字符串)相关函数 fopen, fread, fscan

28、f, fgets表头文件 #include定义函数 char * gets (char *s);函数说明getsO用來从标准设备读入字符并存到参数s所指的内存空问,直到出现换行字符或读到文件尾为止,最后加上NULL作为字符串结束。返回值getsO若成功则返回s指针,返回NULL则表示有错谋发生。 附加说明由于gets ()无法知道字符串s的人小,必须遇到换行字符或文件尾才会结束输入, 因此容易造成缓冲溢出的安全性问题。建议使用fgetsO取代。范例参考fgetsO21. mktemp (产生唯一的临时文件名)相关函数tmpfile表头文件 #include定义函数 char * mktemp(

29、char * template);函数说明mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串屮最 后六个字符必须是XXXXXXo产生后的文件名会借字符串指针返回。返回值文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL, 并把错谋代码存在errno屮。附加说明参数template所指的文件名称字符串必须声明为数组,如:char template二” template-XXXXXXv ;不可用 char * template二template-XXXXXXv ;范例复制代码代码如下:#includemai n ()char template二” template-XXXXXXv ; mktenip (template);printf( tcmplate=%s/n” , template);22. putc (将一指定字符写入文件中) 相关函数 fopen, fwrite, fscanf, fputc表头文件 #include定义函数 int putc (

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1