簡體   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