leo*_*n22 1 c++ arrays stringstream stdstring
我正在使用此代码将unsigned char*(指向256个值的数组)转换为std :: string:
int ClassA::Func(unsigned char *dataToSend, int sendLength)
{
std::stringstream convertStream;
std::string dataToSendStr = "";
for(int i=0; i<=sendLength; i++) convertStream << dataToSend[i];
while(!convertStream.eof()) convertStream >> dataToSendStr;
...
}
Run Code Online (Sandbox Code Playgroud)
但后来我有这种格式的dataToSendStr:
dataToSendStr ""
[0] 0x00
[1] 0x00
[2] 0x04
[3] 0xC0
Run Code Online (Sandbox Code Playgroud)
如果我现在使用这个值我只得到""而不是重要值[0-3]!
- >需要类似:dataToSendStr"000004C0"
谢谢你的帮助!
如果你愿意,可以使用IO操纵器std :: hex(这是我认为基于需要的东西,如问题的一部分),字符的十六进制表示形式dataToSend:
std::ostringstream convertStream;
convertStream << std::hex << std::setfill('0');
for (int i = 0; i < sendLength; i++)
{
convertStream << std::setw(2) << static_cast<short>(dataToSend[i]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |