文件的结尾和文件开头
c语言中文件的结尾指的是文件的最后一个字符的下一个字符
十载的贵港网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整贵港建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“贵港网站设计”,“贵港网站推广”以来,每个客户项目都认真落实执行。
例如:文件a.txt中有三个字符abc,即文件大小为3
那么文件的实际内容如下图.
echo -n abc > a.txt
#include#include int main(void){ FILE* fp = fopen("a.txt","r"); if(NULL==fp){ perror("fopen"),exit(-1); } int c; while(!feof(fp)){ //当文件指针第一次到达文件结尾处时,feof函数返回的是0. c = getc(fp); printf("c=%d\n",c); if(ferror(fp)){ perror("ferror"),exit(-1); } } fclose(fp); return 0; }
c=97
c=98
c=99
c=-1
所以正确做法应该是
#include#include int main(void){ FILE* fp = fopen("a.txt","r"); if(NULL==fp){ perror("fopen"),exit(-1); } int c; while((c=getc(fp))!=EOF){ printf("c=%d\n",c); if(ferror(fp)){ perror("ferror"),exit(-1); } } return 0; }
c=97
c=98
c=99
如何读出文件最后一个字符c,如下:
#include#include #include int main(void){ FILE* fp = fopen("a.txt","r"); fseek(fp,-1,SEEK_END); char c; c = getc(fp); printf("c=%d\n",c); fseek(fp,0,SEEK_END); printf("feof(fp)=%d\n",feof(fp));//此时在文件结尾处 //即文件最后一个字符(即c字符)的下一个字符处 //结果为0 c = getc(fp); printf("c=%d\n",c); //c=-1 printf("feof(fp)=%d\n",feof(fp));//结果为1 return 0; }
c=99
feof(fp)=0
c=-1
feof(fp)=1
当前标题:文件的结尾和文件开头
地址分享:http://ybzwz.com/article/jscojp.html