首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从文本文件中读取,直到EOF重复最后一行

从文本文件中读取,直到EOF重复最后一行
EN

Stack Overflow用户
提问于 2008-08-22 02:21:07
回答 7查看 328.8K关注 0票数 124

下面的C++代码使用ifstream对象从文本文件(每行一个数字)中读取整数,直到命中EOF。为什么它读取最后一行的整数两次?如何解决这个问题?

代码:

代码语言:javascript
复制
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream iFile("input.txt");    // input.txt has integers, one per line

    while (!iFile.eof())
    {
        int x;
        iFile >> x;
        cerr << x << endl;
    }

    return 0;
}

input.txt

代码语言:javascript
复制
10  
20  
30

输出

代码语言:javascript
复制
10  
20  
30  
30

注释:我跳过了所有的错误检查代码,以保持代码片段较小。上述行为在视窗(Visual C++)、cygwin (gcc)和Linux (gcc)上都可以看到。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档