while ( !feof(fp) ) 是什么意思?

1:/*Detectingend-of-file.*/2:#include<stdlib.h>3:#include<stdio.h>4:5:#defineBUFSIZE1... 1: /* Detecting end-of-file. */
2: #include <stdlib.h>
3: #include <stdio.h>
4:
5: #define BUFSIZE 100
6:
7: int main( void )
8: {
9: char buf[BUFSIZE];
10: char filename[60];
11: FILE *fp;
12:
13: puts("Enter name of text file to display: ");
14: gets(filename);
15:
16: /* Open the file for reading. */
17: if ( (fp = fopen(filename, "r")) == NULL)
18: {
19: fprintf(stderr, "Error opening file.");
20: exit(1);
21: }
22:
23: /* If end of file not reached, read a line and display it. */
24:
25: while ( !feof(fp) )
26: {
27: fgets(buf, BUFSIZE, fp);
28: printf("%s",buf);
29: }
30:
31: fclose(fp);
32: return 0;
33: }

请问:第25行:while ( !feof(fp) ) 是什么意思?里面的条件如何理解?
展开
 我来答
NS138613
高粉答主

2019-07-31 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:142
采纳率:100%
帮助的人:2.6万
展开全部

fp为文件句柄,feof为判断是否读到文件尾,! 为非while(!feof(fp))就是当条件为不是文件尾时均执行后续代码。

在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。

该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件。

扩展资料

文件句柄特点

一个句柄就是你给一个文件,设备,套接字(socket)或管道的一个名字,隐藏某些缓存等的复杂性。

在内部, 句柄类似C++语言的流(streams,或BASIC中的I/O通道)句柄从不同的地方输入和输出给不同的地方都较容易。使Perl成为好语言的一个原因是它能和多个文件通讯并一次处理他们。对外部对象友好的符号名字是一个好语言的一个组成部分。

其他使Perl是一个好语言的是:它是8位的,是可嵌入的,能通过扩展模式在Perl中嵌入其他程序。是简明的,网络上容易使用。环境上是清楚的,容易对话。语言本身不是如此严格的结构,以至于不能超出问题,又回到TMTOWTDI。

参考资料来源:百度百科-文件句柄

ljk0209
推荐于2017-12-16 · TA获得超过848个赞
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
while ( !feof(fp) )
可以直接从字面上理解,
while 当
! 没有
feof 到文件尾
结论就是,当没有到文件尾就循环,否则退出。

另,楼上回答很好,请给他最佳
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-02-26
展开全部
feof(fp)用于测试fp文件指针是否已经到达文件结尾,如果fp指针已经到达文件结束,则返回1,否则返回0

这个while就是在文件指针没有到达文件结尾(文件读取尚未结束)时执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
声美媛莘诗
2019-11-06 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:1181万
展开全部
fp应该是一个文件指针
feof是个函数,用来测试是否到文件的结尾
!是逻辑非
while是循环,整句的意思是:
如果fp指向的文件没有到结尾就继续循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式