资源描述:
《C语言文件操作常用函数详解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.C语言文件操作详解在C语言文件操作的过程中,通常有以下几种方式:1.单个字符的操作:fputc函数原型:intfputc(intc,FILE*fp);功能:把一字节代码c写入fp指向的文件中返回值:正常,返回c;出错,为EOF(-1)fgetc函数原型:intfgetc(FILE*fp);功能:从fp指向的文件中读取一字节代码返回值:正常,返回读到的代码值;读到文件尾或出错,为EOF(-1)feof函数原型:intfeof(FILE*fp);功能:判断文件是否到末尾返回值:文件未结束,返回0;文件结束,返回真(非0
2、)示例:#include#includevoidmain(){charch;FILE*fp1=fopen("d:\a.dat","wb");/*以写的方式打开二进制文件*/FILE*fp2;if(NULL==fp1){printf("Cannotopenthisfile!");exit(0);}printf("pleaseinputastring:");ch=getchar();while(ch!='#')/*输入#号结束*/{fputc(ch,fp1);/*依次向文件中写
3、*/ch=getchar();}fflush(stdin);/*清空输入缓冲区*/fclose(fp1);/*关闭文件*/fp2=fopen("d:\a.dat","rb");/*以读的方式打开二进制文件*/if(NULL==fp2){printf("Cannotopenthisfile!");exit(0);..}while(!feof(fp2))/*判断是否到达文件末尾*/{ch=fgetc(fp2);/*从文件中依次读取*/putchar(ch);}putchar('');fflush(stdout)
4、;/*清空输出缓冲区*/fclose(fp2);/*关闭文件*/}注意:putc(ch,fp)与fputc(ch,fp)效果一致,但是putc可以作为宏替换,速度更快getc(fp)与fgetc(fp)效果一致,但是getc可以作为宏替换,速度更快putchar(c)则是fputc(c,stdout)getchar()则是fgetc(stdin)1.对字符串的操作:char*fgets(char*s,intn,FILE*fp)intfputs(char*s,FILE*fp)功能:fgets:从fp指向的文件中读一个长
5、度为n的字符串,保存到s中。其中char*s要是已经有内存空间的,通常是用数组定义的,或者用char*则要用malloc分配内存。fputs:向fp所指向的文件中写入字符串s。返回值:fgets:正常时返回读取字符串的首地址;出错或文件尾,返回NULLfputs:正常时返回写入的最后一个字符;出错为EOF(-1)示例:#include#include#includevoidmain(){FILE*fp;charstring[100];if((fp=fopen(
6、"file.txt","w"))==NULL){printf("cann'topenthisfile!");exit(0);}while(strlen(gets(string))>0)/*从键盘输入字符串,回车停止*/{fputs(string,fp);/*将字符串写入文件*/fputs("",fp);/*在最后加上一个’’*/..}fclose(fp);if((fp=fopen("file.txt","r"))==NULL){printf("cann'topenthisfile!");exit(0)
7、;}while(fgets(string,10,fp)!=NULL)/*判断是否到达文件末尾*/fputs(string,stdout);/*等价于puts(string);*/fclose(fp);}1.对二进制形式的块读写:函数原型:size_tfread(void*buffer,size_tsize,size_tcount,FILE*fp);size_tfwrite(void*buffer,size_tsize,size_tcount,FILE*fp);功能:读/写数据块fread与fwrite一般用于二进制文
8、件的输入/输出fread:从fp所指向的文件中读取count个块,每个块的长度为size个字节,存放到以buffer为首地址的内存中。其中buffer必须已经是由内存空间的。fwrite:从以buffer为首地址的内存中读取count个块,每个块的长度为size个字节,写入到fp所指向的文件中。返回值:成功,返回读/写的块数;出错或文件尾,返回