【发布时间】:2012-11-04 03:45:46
【问题描述】:
我正在使用此代码将 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;
...
}
但是我有这种格式的 dataToSendStr:
dataToSendStr ""
[0] 0x00
[1] 0x00
[2] 0x04
[3] 0xC0
如果我现在使用这个值,我只会得到 "" 而不是重要的值 [0-3]!
-> 需要类似:dataToSendStr "000004C0"
感谢您的帮助!
【问题讨论】:
-
顺便说一句,您不必使用
for() ...构造将元素写入流。如果你想避免手写循环,你可以使用copy( dataToSend, dataToSend+sendLength, ostream_iterator<string>(convertStream) );。 -
当你说“需要类似的东西”时,你的意思是“这是我想要给这个输入的确切字符串”吗?
标签: c++ arrays stringstream stdstring