没有匹配的函数来调用“getline”
我有一个名为 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
getline
的第一个参数的类型为istream&
,不是istream const &
。 (从流中读取数据会改变其状态。)将const
限定符从parser::stream
成员中去掉。The first argument to
getline
is of typeistream&
, notistream const &
. (Reading from a stream changes its state.) Take theconst
qualifier off yourparser::stream
member.