2 u011046042 u011046042 于 2014.11.23 22:32 提问

(get = fgetc(fp))!=EOF

(get = fgetc(fp))!=EOF这个是什么意思?求大神指点一下

4个回答

u012411878
u012411878   2014.11.23 22:35
已采纳

while((get=fgetc(fp)) != EOF)这样?读文件至文件结束。EOF是end of flie

u012964993
u012964993   2014.11.23 22:59

如果读到文件内容的尾部,会返回一个EOF标识。这行代码的含义是,get不等于EOF则返回真,否则返回假。

lm_whales
lm_whales   Rxr 2014.11.25 11:07

fgetc的返回值是 int 类型
如果读取文件,没有错误,那么 返回读取的一个字节内容。
如果读取有错误,返回错误代码
其中 EOF 是文件结束,没有读取到任何内容时候的返回值。
EOF 是 End Of File 的缩写

turingo
turingo   Rxr 2014.11.25 17:39

它等效于:
get = fgetc(fp);
if(get != EOF)
用来判别文件指针是否指到了文件末尾。

EOF更具体的含义可以参考http://en.wikipedia.org/wiki/End-of-file

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
深入解析为什么char c; c = fgetc(fp)是不对的? (在两个公司的面试题中, 都见过这个题)
我们先来看看下面这个程序在VC++6.0中的运行情况(说明, 我自己已经建立好了test.txt文件夹, 并写了一些内容): #include int main() { char c; FILE *fp = fopen("test.txt", "r"); if(NULL == fp) { return 1; } while(EOF != (c = fgetc(fp)))
error:while(ch = fgetc(fStream)!= EOF)和while(ch = fgetc(fStream)&& ch != EOF)是有问题的
while(ch = fgetc(fStream)!= EOF) printf("%c\n",ch); 输出的是笑脸的符号,而不是文本文件中的字符。因为,while中的表达式,!=的优先级高于=,故会将!=的结果赋给ch,并输出。 以后千万不能聊这么随意了。
C语言 文件读取操作
用C程序读取文件内容 p=fgetc(fp); while(p!=EOF) { printf("%c",p); p=fgetc(fp); }
C语言fgetc()函数:读文件函数(由文件中读取一个字符)
相关函数:open, fread, fscanf, getc 头文件:include 定义函数:int fgetc(FILE * stream); 函数说明:fgetc()从参数stream 所指的文件中读取一个字符. 若读到文件尾而无数据时便返回EOF. 返回值:getc()会返回读取到的字符, 若返回EOF 则表示到了文件尾. 范例 #include mai
fgetc与EOF的错综复杂关系
1、fgetc对字节的读取 在正常的情况下,fgetc 以 unsigned char 的方式读取文件流,扩展为一个整数,并返回。换言之,fgetc 从文件流中取一个字节,并加上24个零,成为一个小于256的整数,然后返回。 intc;         while ((c = fgetc (rfp))!= -1) // -1就是 EOF         fputc (c,wfp);
清除scanf中的缓存
void safe_flush(FILE *fp) { int ch; while ((ch = fgetc(fp)) != EOF && ch != '\n'); } 直接调用 safe_flush(stdin)即可!!!
使用fgetc实现fgets的功能
要求:提供如下函数: char *ReadALine(char *buf, int n, FILE *fp); 参数与返回值的含义,同fgets #include "stdafx.h" #include #include using namespace std; char* ReadALine(char *buf,int n,FILE * fp) { char c;int i=
fgetc和fputc交叉使用时候fseek的使用很重要
#include #include int main() { FILE *pFile = fopen("test.txt","r+"); /*char ch; while ((ch = fgetc(pFile)) != EOF) { putchar(ch); fseek(pFile,-1L,SEEK_CUR); fputc('M',pFile); fseek(pF
文件的读写操作
1.fgetc/fputc(fgetc结束标记EOF) //从fp指向的文件中一次读取一个字符 fgetc(fp) //读取n个字符到屏幕上 fputc(n,stdout); 2.fgets/fputs(fgets结束标记NULL) //从fp指向的文件中读文件的读写 文件起始处取信息到数组buf中,最大读取500字节,按行读取 fgets(buf, 500, fp);
简单的解决EOF多读取一行的问题
这个问题还是发生在VECTOR的应用过程中,我在用VECTOR进行数据读取时,发现多读了一行,虽然就目前我的小工具开发来言无上大雅,但是问题还是要解决,不然日后可能会成为一个大BUG也说不定呢。         首先,我还是问了度娘,我二姨夫还在我旁边煞有介事的看我解决问题的思路,我跟他说,百度!正在他不屑的时候,网页上直接弹出了解决EOF多读一行的问题哈哈,搜到了一位同行整理的这个问题的解决