繁体   English   中英

eof问题c ++

[英]eof problem c++

我在Windows XP上使用Dev C ++

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
    string STRING;
    ifstream infile;
    infile.open ("sample.txt");
        while(!infile.eof)
        {
            getline(infile,STRING); 
            cout<<STRING; 
        }
    infile.close();

    return 0;
}

此代码给出以下错误

C:\C++\read.cpp: In function `int main()':

C:\C++\read.cpp:11: error: could not convert `infile.std::basic_ios<_CharT, _Traits>::eof [with _CharT = char, _Traits = std::char_traits<char>]' to `bool'
C:\C++\read.cpp:11: error: in argument to unary !

我不知道这里有什么问题我无法编译代码请帮忙

std::ifstream::eof是一个返回bool的函数。 你必须这样称呼它

infile.eof()

如果您将循环更改为

  while(getline(infile,STRING))
  {
     cout<<STRING; 
  }

你避免了两次读取最后一个值的可能性(参见这篇SO帖子 )。

你在eof之后忘记了()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM