简体   繁体   English

无法将参数1从'char'转换为'const std :: basic_string <_Elem,_Traits,_Ax>&'

[英]cannot convert parameter 1 from 'char' to 'const std::basic_string<_Elem,_Traits,_Ax> &'

I am getting abpve error at line str.append(ch); 我在str.append(ch);str.append(ch); abpve错误str.append(ch); in below code. 在下面的代码中。

I basically want to append str with each char 'ch'. 我基本上想在每个char '后面附加str。

If someone know the issue please correct my error. 如果有人知道该问题,请更正我的错误。

int extract(unsigned char data, char i); // Signature of extract function


void decoded(istream& input,ostream& output)
    {   
        int cnt;
        int x;

        input.read((char*)&x,sizeof(x));


        cout<<x;
        cnt=x;
        string str;
        char ch;
        for ( ; ; ) 
        {
            char c;

            input.read((char*)&c,sizeof(char));

            if ( input )
            {
                //read_bit(c,output);
                for (int i=7; i>=0; i--)
                {     
                    if(cnt)
                        {
                        cnt--;
                        ch=(char)(((int)'0')+extract(c, i));

                        str.append(ch);// I am getting error at this line.

                        if(huffmanFindTable[str])
                        {
                            output.write((char*)&(huffmanFindTable[str]),sizeof(char));
                            str.clear();
                        }
                        else
                        {
                        }

                    }
                }
            }
            else
            break;
        }



    }

string::append has no member function taking a char as argument. string :: append没有将char作为参数的成员函数。 You can append null-terminated char arrays or other stringS . 您可以追加以null终止的char数组或其他stringS

You can only append a "sequence" of character to a string. 您只能在字符串后附加一个字符“序列”。 "append" is an operation on two (sequence) vector (take the word vector in a more generic sense) like objects. “追加”是对两个(序列)向量(在更一般的意义上采用词向量)类似对象的操作。

You can do the following: 您可以执行以下操作:

  1. str.append(1, ch); str.append(1,ch);
  2. str+=ch; str + = ch;

Like the compiler says, there is no member function with the signature 就像编译器所说的那样,没有带签名的成员函数

str.append(ch);

You can use either 您可以使用

str.append(1, ch);

or the simpler 或更简单

str.push_back(ch);

暂无
暂无

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

相关问题 无法将参数1从&#39;CHAR [260]&#39;转换为&#39;const std :: basic_string &lt;_Elem,_Traits,_Ax&gt; - cannot convert parameter 1 from 'CHAR [260]' to 'const std::basic_string<_Elem,_Traits,_Ax> 错误C2664:无法将参数1从&#39;const std :: basic_string &lt;_Elem,_Traits,_Ax&gt;&#39;转换为&#39;std :: wstring& - error C2664: cannot convert parameter 1 from 'const std::basic_string<_Elem,_Traits,_Ax>' to 'std::wstring & 无法从&#39;const char *&#39;转换为&#39;std :: _ St​​ring_const_iterator &lt;_Elem,_Traits,_Alloc&gt; - cannot convert from 'const char *' to 'std::_String_const_iterator<_Elem,_Traits,_Alloc> C ++类型转换:错误C2440:“正在初始化”:无法从“ HRESULT”转换为“ std :: basic_string &lt;_Elem,_Traits,_Alloc&gt;” - c++ type conversion: error C2440: 'initializing' : cannot convert from 'HRESULT' to 'std::basic_string<_Elem,_Traits,_Alloc>' std::basic_string 作为 function 模板的参数不能从 const char* 推导出来 - std::basic_string as a parameter of a function template cannot be deduced from const char* “ str2Int(std :: basic_string <char, std::char_traits<char> ,std :: allocator <char> &gt; const&)”,引用自: - “str2Int(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)”, referenced from: 无法转换 &#39;std::basic_string<char> &#39; 到 &#39;const char*&#39; 作为参数 &#39;1&#39; 到 &#39;int system(const char*)&#39; - cannot convert 'std::basic_string<char>' to 'const char*' for argument '1' to 'int system(const char*)' 没有合适的构造函数来将“ const char [8]”转换为“ std :: basic_string” <wchar_t, std::char_traits<wchar_t> ,std :: allocator <wchar_t> &gt;” - no suitable constructor exists to convert from “const char [8]” to “std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t>>” 1 IntelliSense:没有合适的构造函数可以从“bool”转换为“std :: basic_string” <char, std::char_traits<char> ,std :: allocator <char> &gt;” - 1 IntelliSense: no suitable constructor exists to convert from “bool” to “std::basic_string<char, std::char_traits<char>, std::allocator<char>>” C ++错误:无法转换&#39;std :: basic_string <char> &#39;至&#39;const char *&#39; - C++ error: cannot convert ‘std::basic_string<char>’ to ‘const char*’
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM