我将所有内容从exe文件保存到char buffer

当我尝试:

string bufferStr=(string)buffer;
cout<<bufferStr.length();


我知道bufferStrbuffer小得多,所以我想,由于我正在读取exe文件,因此我在其中某处读取了转义字符“ \ 0”或类似内容。

如何在不使用缓冲区转义任何字符的情况下使用buffercout甚至写入文件?
谢谢

最佳答案

字符串构造函数对数据长度一无所知,并假定它是0终止的字符串。你应该用

string bufferStr=string(buffer, bufferSize);
cout<<bufferStr.length();

使用此类构造函数字符串还将节省\0字节。

10-08 01:31