读取文本文件时,为什么最后一行会读取两次?

mopyman 2002-01-25 10:28:59
代码如下:
ifstream in(filename);
while(!in.eof())
{
in>>linetext;
cout<<linetext;
}
读二进制文件时,最后一个字节会读两次,到底为什么?
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我来看看CB 2002-01-26
  • 打赏
  • 举报
回复
因为要读取文件结束符号
karma 2002-01-26
  • 打赏
  • 举报
回复
try

while(in>>linetext)
{
cout<<linetext;
}
BCB 2002-01-26
  • 打赏
  • 举报
回复
跟其它语言不一样,C 读完才能知道当前eof()的值,
这是易忽视的问题:
所以,必须改一下:
while (in>>linetext,!in.eof())
cout<<lintext;


13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧