> 到 char 存在,c++"/>

首页 > 解决方案 > 我收到错误消息:std::basic_istream 没有合适的转换函数> 到 char 存在

问题描述

我正在尝试重载运算符 >> 并且我想从输入中读取每个字符,但我得到了那个错误。这是代码:

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

    }
}

标签: 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返回的输入流的值。


推荐阅读