【问题标题】:no viable conversion from returned value of type 'basic_istream<char, std::__1::char_traits<char> >' to function return没有从 'basic_istream<char, std::__1::char_traits<char> >' 类型的返回值到函数返回的可行转换
【发布时间】:2019-05-18 10:36:39
【问题描述】:

我遇到了这个错误。

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

【问题讨论】:

    标签: c++ c++11 type-conversion implicit-conversion


    【解决方案1】:

    注意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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 2022-11-18
      • 2015-07-27
      • 2021-02-28
      • 2014-05-24
      • 2022-01-16
      • 1970-01-01
      相关资源
      最近更新 更多