从文件中读取数据时,如果用eof()检测作为读结束条件,为什么会将最后一个数据读两次?

 我来答
阴雪海
2011-05-10 · TA获得超过309个赞
知道小有建树答主
回答量:631
采纳率:0%
帮助的人:0
展开全部
DOS常用命令详解

dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录
copy 拷贝文件 diskcopy 复制磁盘 del 删除文件 format 格式化磁盘
edit 文本编辑 mem 查看内存状况 md 建立子目录 move 移动文件、改目录名
more 分屏显示 type 显示文件内容 rd 删除目录
sys 制作DOS系统盘
ren 改变文件名 xcopy 拷贝目录与文件 chkdsk 检查磁盘 attrib 设置文件属性
fdisk 硬盘分区 date 显示及修改日期 label 设置卷标号 defrag 磁盘碎片整理
msd 系统检测 path 设置搜寻目录 share 文件共享 memmaker内存优化管理
help 帮助 restore 恢复备份文件 set 设置环境变量 time 显示及修改时间
tree 列目录树 debug 随机调试程序 doskey 重新调用DOS命令 prempt 设置提示符 undelete恢复被删的文件 scandisk检测、修理磁盘

不常用DOS命令
diskcomp磁盘比较 append 设置非执行文件路径
expand 还原DOS文件 fasthelp快速显示帮助信息
fc 文件比较 interink启动服务器
setver 设置版本 intersvr启动客户机
subst 路径替换 qbasic Basic集成环境
vsafe 防病毒 unformat恢复已格式化的磁盘
ver 显示DOS版本号 smartdrv设置磁盘加速器
vol 显示磁盘卷标号 lh 将程序装入高端内存
ctty 改变控制设备 emm386 扩展内存管理
常用命令具体介绍:
一、Dir
显示目录文件和子目录列表,呵呵,这个当然是人人要知道的。
可以使用通配符(? 和 *),?表通配一个字符,*表通配任意字符
*.后缀
指定要查看后缀的文件。 上面其实也可以为“ . 后缀”,例如dir *.exe 等于dir .exe
/p
每次显示一个列表屏幕。要查看下一屏,请按键盘上的任意键。
/w
以宽格式显示列表,在每一行上最多显示 5 个文件名或目录名。
/s
列出指定目录及所有子目录中出现的每个指定的文件名。比win环境下的查找快多了
dir *.* -> a.txt 把当前目录文件列表写入a.txt
dir *.* /s -> a.txt 把当前目录文件列表写入a.txt,包括子目录下文件。
二、Attrib
显示、设置或删除指派给文件或目录的只读、存档、系统以及隐藏属性。如果在不含参数的情况下使用,则 attrib 会显示当前目录中所有文件的属性。
+r 设置只读属性。
-r 清除只读属性。
+a 设置存档文件属性。
-a 清除存档文件属性。
+s 设置系统属性。
-s 清除系统属性。
+h 设置隐藏属性。
-h 清除隐藏属性。
三、Cls
清除显示在命令提示符窗口中的所有信息,并返回空窗口,即“清屏”
四、Exit
退出当前命令解释程序并返回到系统。
五、format
格式化
/q 执行快速格式化。删除以前已格式化卷的文件表和根目录,但不在扇区之间扫描损坏区域。使用 /q 命令行选项应该仅格式化以前已格式化的完好的卷。
六、Ipconfig
显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IP 地址、子网掩码、默认网关。
/all 显示所有适配器的完整 TCP/IP 配置信息。
ipconfig 等价于 winipcfg,后者在ME、98 和 95 上可用。尽管 Windows XP 没有提供象 winipcfg 命令一样的图形化界面,但可以使用“网络连接”查看和更新 IP 地址。要做到这一点,请打开 网络连接,右键单击某一网络连接,单击“状态”,然后单击“支持”选项卡。
该命令最适用于配置为自动获取 IP 地址的计算机。它使用户可以确定哪些 TCP/IP 配置值是由 DHCP、自动专用 IP 地址 (APIPA) 和其他配置配置的。
七、md 创建目录或子目录
八、Move 将一个或多个文件从一个目录移动到指定的目录。
九、Nbtstat
显示本地计算机和远程计算机的基于 TCP/IP (NetBT) 协议的 NetBIOS 统计资料、NetBIOS 名称表和 NetBIOS 名称缓存。Nbtstat 可以刷新 NetBIOS 名称缓存和注册的 Windows Internet 名称服务 (WINS) 名称。使用不带参数的 nbtstat 显示帮助。Nbtstat 命令行参数区分大小写。
-a remotename
显示远程计算机的 NetBIOS 名称表,其中,RemoteName 是远程计算机的 NetBIOS 计算机名称。
-A IPAddress 显示远程计算机的 NetBIOS 名称表,其名称由远程计算机的 IP 地址指定(以小数点分隔)。
十、Netstat 显示活动的 TCP 连接、计算机侦听的端口、以太网统计信息、IP 路由表、IPv4 统计信息(对于 IP、ICMP、TCP 和 UDP 协议)以及 IPv6 统计信息(对于 IPv6、ICMPv6、通过 IPv6 的 TCP 以及通过 IPv6 的 UDP 协议)。使用时如果不带参数,netstat 显示活动的 TCP 连接。
-a 显示所有活动的 TCP 连接以及计算机侦听的 TCP 和 UDP 端口。
十一、Ping 通过发送“网际消息控制协议 (ICMP)”回响请求消息来验证与另一台 TCP/IP 计算机的 IP 级连接。回响应答消息的接收情况将和往返过程的次数一起显示出来。Ping 是用于检测网络连接性、可到达性和名称解析的疑难问题的主要 TCP/IP 命令。如果不带参数,ping 将显示帮助。名称和Ip地址解析是它的最简单应用也是用的最多的。
-t 指定在中断前 ping 可以持续发送回响请求信息到目的地。要中断并显示统计信息,请按 CTRL-BREAK。要中断并退出 ping,请按 CTRL-C。
-lSize
指定发送的回响请求消息中“数据”字段的长度(以字节表示)。默认值为 32。size 的最大值是 65,527。
十二、Rename (Ren)
更改文件的名称。 例如 ren *.abc *.cba
十三、Set 显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境设置。
十四、Shutdown 允许您关闭或重新启动本地或远程计算机。如果没有使用参数,shutdown 将注销当前用户。
-m ComputerName 指定要关闭的计算机。
-t xx 将用于系统关闭的定时器设置为 xx 秒。默认值是 20 秒。
-l 注销当前用户,这是默认设置。-m ComputerName 优先。
-s 关闭本地计算机。
-r 关闭之后重新启动。
-a 中止关闭。除了 -l 和 ComputerName 外,系统将忽略其它参数。在超时期间,您只可以使用 -a。
十五、System File Checker (sfc)
win下才有,在重新启动计算机后扫描和验证所有受保护的系统文件。
/scannow 立即扫描所有受保护的系统文件。
/scanonce 一次扫描所有受保护的系统文件。
/purgecache 立即清除“Windows 文件保护”文件高速缓存,并扫描所有受保护的系统文件。
/cachesize=x 设置“Windows 文件保护”文件高速缓存的大小,以 MB 为单位。
十六、type 显示文本文件的内容。使用 type 命令查看文本文件或者是bat文件而不修改文件
十七、Tree 图像化显示路径或驱动器中磁盘的目录结构。
十八、Xcopy 复制文件和目录,包括子目录。
/s 复制非空的目录和子目录。如果省略 /s,xcopy 将在一个目录中工作。
/e 复制所有子目录,包括空目录。
十九、copy 将一个或多个文件从一个位置复制到其他位置
二十、del 删除指定文件。
ftp和bat批命令和net和telnet由于子命令太多,这里不说了,不过这几个都是常用到的。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
wanfustudio
2011-05-09 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3766万
展开全部
用eof判断不一定准确, 它并不表示文件结束的位置,它表示文件结尾的下一个位置
即当读文件出错时,就是说读的位置已经超出了文件范围,它才成立

最好用读文件函数的返回值来判断,c语言中fscanf, fread都是有返回值的
c++应该也是类似的
我要读多少,如果读不到那么多就说明到头了
追问
那不就对了么?比如一个文件由23 34组成,那么当文件读到34的下一位不就刚好不读了,而读到就读出来,但为什么结果还会读两个34呢????
追答
while( !feof( stream ) )
{
读操作,假设当前读了34,但是循环条件判断feof还是没有到文件末尾的
然后循环继续执行,你再次执行读操作,结果读失败了,你上次读入的值没有被改写,就被 再次输出了
问题的关键就出在这里
}

可以参考我之前回答的一个问题

如上例,你

参考资料: http://zhidao.baidu.com/question/96507377.html

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式