文件传输-一个困惑:EOF与feof()怎么用

问题描述

一个困惑:EOF与feof()怎么用
#include <stdio.h>
#include <stdlib.h>
#define SIZE            50
#define FILENAME        "E:\1.txt"  //---->内容:  12345 

int main(void)
{
        int     ln;
        FILE    *fp;
        char    ar[SIZE];  

        ln      = 0;  

        if( (fp = fopen(FILENAME, "r") ) == NULL)
        {
                        printf("Can not open file: %sn", FILENAME);
                        exit(1);
        }  

        while( !feof(fp) )
        {
                fgets(ar, SIZE, fp);

              //   if( feof(fp) )
               //    {    这里注释掉就会把 12345 输出2遍,
              //          break;
              //    }  

                printf("%s", ar);
        }  

        fclose(fp);
        return 0;
}  

我还是不明白EOF是和feof是怎么工作的,请教大家了。

解决方案

只有当文件位置指针(fp->_ptr)到了文件末尾,然后再发生读/写操作时,标志位(fp->_flag)才会被置为含有_IOEOF。然后再调用feof(),才会得到文件结束的信息。

http://blog.csdn.net/bingqing07/article/details/5785080

解决方案二:

feof是函数,而EOF是个常量。它们的关系好比打印机和打印纸的关系

解决方案三:

feof是函数,而EOF是个常量。它们的关系好比打印机和打印纸的关系。 赞同这个说法, EOF的数值, 可以在头文件中找到的。

解决方案四:

额,这个在百度上面有很多答案的。。。随便”duang“一下就很多。。。

解决方案五:

额,这个在百度上面有很多答案的。。。随便”duang“一下就很多。。。

时间: 2024-08-17 16:08:18

文件传输-一个困惑:EOF与feof()怎么用的相关文章

udp-需要一个java基于UDP协议的文件传输程序

问题描述 需要一个java基于UDP协议的文件传输程序 文件是一个实验数据的文件,是txt个格式的,需要将它传输到指定的IP上 解决方案 server package com.way.server;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundEx

socket数据传输-一个socket问题,文件传输,但不保存问题。大神们在哪儿呢

问题描述 一个socket问题,文件传输,但不保存问题.大神们在哪儿呢 用socket 传文件, 比如说传视频,接收方 不下载,只将接受到的数据存在内存中,并在内存中使用 播放它.大神们,帮帮忙嘞~~~ 解决方案 你保存不保存,都无所谓,本身要播放文件,也是要把文件加载到内存.. 解决方案二: 是传到服务器吗?感觉这个视频还是要转到服务器中才行!服务器才是中转站 解决方案三: 你要了解一点,如果接收到数据直接利用这个流数据,你得控制好你服务器的内存使用量 解决方案四: 那就每次固定从缓冲区取内容

自己写了一个用java socket通信实现的文件传输,如果我想实现不同局域网之间的传输怎么办?

问题描述 自己写了一个用java socket通信实现的文件传输,如果我想实现不同局域网之间的传输怎么办? 可不可以把自己的电脑搭建成服务器然后把文件传上去,自己电脑的服务器可以使用非web的文件么 解决方案 不同局域网之间通信要路由器交换机支持,进行路由转发.不然不能直接通信 解决方案二: 如果Socket通信的话IP地址必须相同

如何在vs中,做一个对话框,通过按钮调用或关闭“P2P远程协助文件传输SDK.exe”。

问题描述 如何在vs中,做一个对话框,通过按钮调用或关闭"P2P远程协助文件传输SDK.exe". 如何在vs中,做一个对话框,通过按钮调用或关闭"P2P远程协助文件传输SDK.exe". 解决方案 按钮响应事件函数中,CreateProcess,TerminateProcess来分别调用,关闭"P2P远程协助文件传输SDK.exe". 解决方案二: 你好大神.求具体的实现代码啊

python实现的一个p2p文件传输实例_python

考虑到我手上的服务器逐渐的增多,有时候需要大规模的部署同一个文件,例如因为方便使用systemtap这个工具定位问题,需要把手上几百台服务器同时安装kernel-debuginfo这个包,原有的方式采用一个源服务器,采用rsync或者scp之类的文件传输方式只能做到一个点往下分发这个文件,这个时候下发的速度就会比较的慢,基于以上原因,我写了一个基于bt协议传输文件的小工具,实际测试,传输到10个机房,70多台机器传输一个240M的这个内核文件,到所有的机器,源采用限速2m/s的上传速度,测试的结

Linux基本网络及文件传输命令

网络下载器-- wget wget命令语法: wget [参数][URL] 实例1  下载www.google.com网站首页的数据. [root@localhost local]# wget www.google.com 实例2  最多尝试5次下载文件http://www.apache.org/ images/ac2009eu_125x12 5_bas ic.gif. [root@localhost local]# wget –t 5 http://www.apache.org/im ages

Python实现的简单文件传输服务器和客户端_python

还是那个题目(题目和流程见java版本),感觉光用java写一点新意也没有,恰巧刚学习了python,何不拿来一用,呵呵: 服务器端: import SocketServer, time class MyServer(SocketServer.BaseRequestHandler): userInfo = { 'yangsq' : 'yangsq', 'hudeyong' : 'hudeyong', 'mudan' : 'mudan' } def handle(self): print 'Con

Linux与windows之间-文件传输工具RZSZ

RZSZ简介 一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆 linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地 : 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地 机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 rz, sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需要支持ZMode

标准C实现基于TCP/IP协议的文件传输

TCP/IP编程实现远程文件传输在LUNIX中一般都采用套接字(socket)系统调用. 采用客户/服务器模式,其程序编写步骤如下: 1.Socket系统调用  为了进行网络I/O,服务器和客户机两端的UNIX进程要做的第一件事是调用socket()系统调用,建立软插座,指明合适的通讯协议.格式为:  1 2 3 #include >sys/types.h> #include >sys/socket.h>    int socket(int family,int type,int