我在下面的代码中的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;
}
}
答案 0 :(得分:1)
string::append没有以char
为参数的成员函数。您可以追加以null结尾的char
数组或其他stringS
。
答案 1 :(得分:1)
您只能在字符串中附加字符的“序列”。 “append”是对两个(序列)向量(以更一般意义上的单词向量)的操作,就像对象一样。
您可以执行以下操作:
答案 2 :(得分:1)
与编译器一样,没有带签名的成员函数
str.append(ch);
您可以使用
str.append(1, ch);
或更简单的
str.push_back(ch);