EOF和feof()的问题
2015-07-19 13:16
246 查看
EOF和feof都是判断文件是不到结束了 但是两个还是区别的 EOF 是判断文本文件类型的 不能判断二进制文件 #define EOF -1 这个数在二进制文件中是存在的 所以会存在还没有到文件结束就退出的情况 而 feof()就解决了这个问题 feof()可以判断文本文件 和二进制文件 但是在feof()中应该注意的是 当文件内部的指针移动到文件末尾的时候 要再一次进行读或写的操作 才会退出 #define feof(_stream) ((_stream)->flag & _IOEOF ) 因为feof(fp) 当文件没有结束的是偶返回的是0 可以这样理解 当文件指到末尾 在此发生一次读写的时候 (_stream)->flag & _IOEOF会被置为1 好了看程序吧! ------------------------------------------------ #include <stdio.h> int main( void ) { char c; FILE *fp = NULL; fp = fopen( "./abc" ,"r" ); if( fp == NULL ){ perror( "./abc" ); }else{ while( (c = fgetc(fp)) != EOF ){ fprintf( stdout,"%c",c); } } return 0; } ------------------------------------------------------ #include <stdio.h> int main( void ) { char c; FILE *fp = NULL; fp = fopen( "./abc" ,"r" ); if( fp == NULL ){ perror( "./abc" ); }else{ while( !feof( fp ) ){ fprintf(stdout,"%c",c); c = fgetc( fp ); } } return 0; } ------------------------------------------------------- 对于feof() 先输出 然后当指针指到文件末尾 在此发生 fgetc() 则 判断while( !1 ) 就会退出 如果不这样就会出现一点乱码。 好了结束了!有一段时间没有写博客了!以后要坚持更新!
相关文章推荐
- WPF与JS 函数、回调函数调用
- Node:KMP之next数组
- [CareerCup] 2.3 Delete Node in a Linked List 删除链表的节点
- poj - 1170 - Shopping Offers(减少国家dp)
- angularjs开发常见问题-2(angularjs内置过滤器)
- springmvc + jquery聊天室,逗比版
- PWM例程__MK20DX128VLH5_K20系列
- JavaScript 中 Number
- javascript中setAttribute()函数使用方法及兼容性
- CSS + DIV 使用方法总结
- jQuery的position()方法详解
- 关于使用INewLineFeedback创建线段
- PIT设置_中断优先级设置__MK20DX128VLH5_K20系列
- ExtJs动态生成treepanel的Json格式
- 使用Modernizr探测HTML5/CSS3新特性
- 我钟爱的HTML5和CSS3在线工具
- HTML5学习笔记简明版(4):新元素之video,audio,meter,datalist,keygen,output
- HTML5学习笔记简明版(5):input的type超级类型
- JavaScript 中的string 方法
- HTML5学习笔记简明版(8):新增的全局属性