部分代码如下
string cn;
ifstream infile("encode.lzw", ios::binary);
infile.read((char*)&stud, sizeof(stud));
for (int i = 0; i<8; i++)
{
cn += char((int)stud / 128);
*stud << 1;
}
infile.close();
for (int i = 0; i < b; i++)
cout << (char)cnm[i];
打错了不是cnm,是cn
从文件读取的数据有可能是编码的问题,改变一下编码试试看
for (int i = 0; i < b; i++)
cout << (char)cnm[i]; //前面不是cn吗,这里是cnm
因为是部分代码,不确定是这个问题。
建议你检查下这块,看看输出和内存是否指向同一对象。
文件读取的话可能有BOM头的问题。
字符串后边不是以"\0"结尾的吧?输出的时候cn+=“\0”试试
字符串后面没有加‘\0’,加上结束符再输出