C语言中判断文件到了尾部的办法!!!

while(!feof(fp))
{}
我用上面的函数进行循环,如果到了尾部就不执行,可是事实上还是进行了循环!!
求解!!!

第1个回答  2013-03-08
fp是你读过的文件的那个文件的位置,有时候这个就不行,用下面这个
while(fgets(buf,100,fp))
然后再进行以后的程序
第2个回答  2013-03-08
不知道你循环体中是什么,fp要有变化的追问

我的循环是将文件的内容读取出来到一个结构体上
而且我的文件开始的时候就是一个新建的txt文件,无论执行什么都应该不会进入循环

追答

int fefo(FILE* stream) 这个函数的返回值是这样的:若文件指针stream到了文件尾则返回非零值,否则返回零。
如果你文件有内容,刚开始也不是文件尾,那么就是返回非零值,你再取反(!feof(fp))就是零,所以不进入循环;
如果你文件没有内容,若已经到了文件尾,那么就恰好相反,就会进入循环。
我猜测你是不是文件没有内容啊。

本回答被提问者采纳
第3个回答  2013-03-08
就是这个函数 你用错了追问

可以解释下怎么错了么?
我的文件是新建的,里面什么内容都没有

C语言文件指针如何定位到文件尾部
nFileSize = ftell(fp);fseek(fp,0,SEEK_SET);这样又移回来了

c语言中fseek函数怎样指到文件末尾
fseek有三个参数,第1个是文件句柄,通过打开文件时得到;第2个就是移动的字节数,这个数可以是正的,就是向后(文件尾部)移动,也可以是负的,即向前(文件头部)移动;第3个参数指明从哪里移动,如果写SEEK_SET就是从文件头部移动多少字节,如果 ...

c语言中feof是什么意思
在C语言的世界里,feof是一个极其实用的函数,它专门用于检测文件操作的尾部。这个函数的作用是判断给定的FILE指针所指向的文件是否已经到达了其结尾,换句话说,就是检查是否已经没有更多的内容可以读取。其返回值非常直观:如果文件指针已经指向文件结尾,函数会返回一个非零值,表示"end of file";反之...

C++怎么用eof判断txt文件到文件结尾了没
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束...

EOF与exit() C语言
EOF是定义在stdio.h中常数,其值是-1。EOF通常用来判断读文件时,是否读到了文件尾部,未到时,函数feof(fp)返回0,否则返回EOF。而exit()是定义在stdlib.h中的函数,其功能是结束程序,将形参(通常是整数)返回给操作系统。

c什么意思?
例如,在复制文本文件到另一文件的程序中,就需要用到feof来确认是否已到达文件尾部。EOF函数在C语言中用于检测文件是否已到达结尾,语法为EOF(filenumber),其中filenumber参数是需要检查的文件句柄。这个函数在读取操作中,直到文件实际结尾才会返回真(True),确保了文件操作的正确性。

C语言strncmp的问题
1.如果 cs 不判断是否到达尾部,如果 cs, ct 字符一样长,那么会比较 '\\0'后面的数据,这样就不对了。2.ct之所以不用比较,你已经说了,如果不等长,比较到结束符\\0时,肯定返回不为0。

c语言中读文件判断读到0x00是什么意思 读完了吗
字符串尾部有一个‘\\0’,判断接收到这个了,文件就读完了。如string str=“12345”起始是含有‘1’,‘2‘,’3‘,’4‘,’5‘和‘\\0’的

c语言中要编写按“ctrl+z”退出程序,怎么编?要调试过的
include<stdio.h> main(){ while(getchar()!=EOF){ } } +z主要是读到文件尾部

C语言中的EOF怎样使用
LZ是怎么输入EOF字符的呢?不会是直接输入E,O,F吧。把样式不对的!EOF是个宏定义。是一个常量,是不能用字符E,O,F组合输入的。输入方法如下:LINUX \/ UNIX 系统下输入方式是:<ctrl>+dWINDOWS下输入方式是:  <ctrl>+zLZ再试试!

相似回答