eof 问题 c++

发布于 2024-11-02 17:46:46 字数 736 浏览 5 评论 0原文

我在 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 !

我不确定这里出了什么问题我无法编译代码 请帮忙

i am using Dev C++ on windows xp

#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;
}

this codes gives the following error

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 !

i am not sure what is wrong here i cant compile the code
please help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

真心难拥有 2024-11-09 17:46:46

如果您将循环更改为

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

避免读取最后一个值两次的可能性(请参阅这篇文章)。

If you change your loop to

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

you avoid the possibility of reading the last value twice (see this SO post).

女中豪杰 2024-11-09 17:46:46

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

infile.eof()

std::ifstream::eof is a function that returns a bool. Thsu you have to call it like

infile.eof()
苄①跕圉湢 2024-11-09 17:46:46

您忘记了 eof 之后的 ()

You forgot the () after the eof.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文