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

时间:2012-07-25 18:35:15

标签: c++ string visual-studio-2008

我在下面的代码中的str.append(ch);行遇到了abpve错误。

我基本上想用每个char'ch'追加str。

如果有人知道此问题,请更正我的错误。

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;
        }



    }

3 个答案:

答案 0 :(得分:1)

string::append没有以char为参数的成员函数。您可以追加以null结尾的char数组或其他stringS

答案 1 :(得分:1)

您只能在字符串中附加字符的“序列”。 “append”是对两个(序列)向量(以更一般意义上的单词向量)的操作,就像对象一样。

您可以执行以下操作:

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

答案 2 :(得分:1)

与编译器一样,没有带签名的成员函数

str.append(ch);

您可以使用

str.append(1, ch);

或更简单的

str.push_back(ch);