我将所有内容从exe文件保存到char buffer
。
当我尝试:
string bufferStr=(string)buffer;
cout<<bufferStr.length();
我知道
bufferStr
比buffer
小得多,所以我想,由于我正在读取exe文件,因此我在其中某处读取了转义字符“ \ 0”或类似内容。如何在不使用缓冲区转义任何字符的情况下使用
buffer
到cout
甚至写入文件?谢谢
最佳答案
字符串构造函数对数据长度一无所知,并假定它是0终止的字符串。你应该用
string bufferStr=string(buffer, bufferSize);
cout<<bufferStr.length();
使用此类构造函数字符串还将节省
\0
字节。