我收到错误:没有合适的转换函数从 std::basic_istream<char、std::char_traits<char>> 到 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
ness,那么你将执行注释中提到的操作,而不是:
while (input.get(c))
它将字符存储在c
然后检查返回的输入流的bool
值。