繁体   English   中英

我收到错误消息:std :: basic_istream没有合适的转换函数 <char, std::char_traits<char> &gt;到char存在

[英]I'm getting the error: no suitable conversion function from std::basic_istream<char, std::char_traits<char>> to char exists

我试图使运算符>>重载,但我想从输入中读取每个字符,但出现错误。 这是代码:

istream& operator>>(istream& input, Natural_Big_Number number)
{
    int x;
    input >> x;
    number.set_nr_digits(x);
    char c;
    while ((c = input.get(c)))
    {

    }
}

如果您希望它返回字符,则无需为.get()指定参数。 https://en.cppreference.com/w/cpp/io/basic_istream/get

#include <iostream>
using namespace std;

istream& operator>>(istream& input, int number)
{
    char c;
    while ((c = input.get()))
    {

    }
}

https://godbolt.org/z/XSKvv4

如果要检查流的布尔值是否false ,则可以执行注释中提到的操作,而不是:

while (input.get(c))  

它将字符存储在c然后检查返回的输入流的bool值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 没有合适的转换 function 从 (C++) std::istream &amp;std::getline <char, std::char_traits<char> , 标准::分配器<char> &gt; 布尔值</char></char,> C ++和Visual Studio错误-没有来自“ std :: basic_ostream的合适转换函数” <char, std::char_traits<char> &gt;”到“ int”存在 1 IntelliSense:没有合适的构造函数可以从“bool”转换为“std :: basic_string” <char, std::char_traits<char> ,std :: allocator <char> &gt;” 从&#39;void&#39;转换为非标量类型&#39;std :: pair <std::basic_string<char, std::char_traits<char> 我一直从Xcode收到一个错误,提示“ Apple Mach-O Linker(Id)Error” readIt(std :: _ 1 :: basic_ifstream <char,std::_1::char_traits<char> &gt;&,” 出于某种原因,我不断收到此错误:“运算符&gt;&gt;”不匹配(操作数类型为“std::istream”{又名“std::basic_istream”<char> &#39;} 无法绑定&#39;std :: basic_istream <char> &#39;左右&#39;std :: basic_istream <char> &amp;&amp;” 重载运算符&gt;&gt;:无法绑定&#39;std::basic_istream<char> &#39; 左值到 &#39;std::basic_istream<char> &amp;&amp;&#39; 没有合适的构造函数来将“ const char [8]”转换为“ std :: basic_string” <wchar_t, std::char_traits<wchar_t> ,std :: allocator <wchar_t> &gt;” ostream和运算符std :: basic_string <char, std::char_traits<char> ,std :: allocator <char> &gt;?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM