0

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



    }
4

3 回答 3

1

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

于 2012-07-25T18:38:38.660 回答
1

您只能将字符的“序列”附加到字符串。“追加”是对两个(序列)向量(更一般意义上的词向量)类似对象的操作。

您可以执行以下操作:

  1. str.append(1, ch);
  2. str+=ch;
于 2012-07-25T18:42:41.577 回答
1

就像编译器说的那样,没有带有签名的成员函数

str.append(ch);

你可以使用

str.append(1, ch);

或更简单的

str.push_back(ch);
于 2012-07-25T18:44:32.137 回答