没有匹配的函数来调用“getline”

发布于 2024-12-15 21:01:45 字数 589 浏览 3 评论 0原文

我有一个名为 parser 的类:

class parser {
  const std::istream& stream;
public:
  parser(const std::istream& stream_) : stream(stream_) {}
  ~parser() {}

  void parse();
};

parser::parse 中,我想循环每一行,所以我使用 std::getline

std::getline(stream, line)

:但是,编译器给了我这个错误:

src/parser.cc:10:7: 错误:没有匹配的函数来调用“getline”
    std::getline(流,行);
    ^~~~~~~~~~~~

但是 std::getline 的第一个参数是 std::istream& 类型,对吗?我可能做错了什么?

I have a class called parser:

class parser {
  const std::istream& stream;
public:
  parser(const std::istream& stream_) : stream(stream_) {}
  ~parser() {}

  void parse();
};

In parser::parse I want to loop over each line, so I use std::getline:

std::getline(stream, line)

The compiler gives me this error, however:

src/parser.cc:10:7: error: no matching function for call to 'getline'
    std::getline(stream, line);
    ^~~~~~~~~~~~

But the first argument to std::getline is of type std::istream&, right? What could I be doing wrong?

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

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

发布评论

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

评论(1

泪是无色的血 2024-12-22 21:01:45

getline 的第一个参数的类型为 istream&不是 istream const &。 (从流中读取数据会改变其状态。)将 const 限定符从 parser::stream 成员中去掉。

The first argument to getline is of type istream&, not istream const &. (Reading from a stream changes its state.) Take the const qualifier off your parser::stream member.

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