c++ - 没有匹配函数调用 'getline'

标签 c++ getline istream

我有一个名为 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: error: no matching function for call to 'getline'
    std::getline(stream, line);
    ^~~~~~~~~~~~

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

最佳答案

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

关于c++ - 没有匹配函数调用 'getline',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140739/

相关文章:

c++ - 为什么这个文件不能在 gcc 中编译?它在 VS 中运行良好

c++ - 基本自旋锁互斥体实现顺序

c++ - 连接 TFields 值

c++ - 如何重载 >> 运算符以采用逗号分隔的变量参数列表

c++ - 找到文件流的结尾

c++ - 如何读取 USB token 上存储的 X.509 证书的详细信息?

c++ - 如何阻止程序跳过 getline?

c++ - 遍历文件的每一行

c - 我需要知道我是否正确使用 getline

c++ - 从 istream 复制永远不会停止