没有从类型为"basic_istream<char,std::__1::char_traits >"的返回值<char>到函数返回的可行转换



我有这个错误。

no viable conversion from returned value of type       'basic_istream<char, std::__1::char_traits<char> >' to function return       type 'bool'       
return (getline(fin,buf))

我将非常感谢任何帮助。我正在尝试编译C 代码。这是我发行的代码行:

bool getInstruction( ifstream & fin , string & buf ) {
      return (getline(fin,buf));
}

请注意,std::basic_ios::operator bool标记为explicit(因为C 11);getline()的返回值(std::basic_istream的实例化)不能隐式转换为bool

您可以明确将其转换为bool

如果流没有错误并且可以进行I/O操作,则返回true。具体来说,返回!fail()

,例如

return static_cast<bool>(getline(fin,buf));

相关内容

最新更新