0

如何将 a 转换const uint8_t*为 a stringstream?谢谢

std::stringstream s1;
s1 << 4 << ' ' << 2 <<;
const uint8_t* sbuffer = (uint8_t*) s1.str().c_str();
int sbufferlength = s1.str().length();
std::stringstream s2 = //get stringstream from sbuffer    
int x, y;
s2 >> x >> y;
4

2 回答 2

0

请注意:您没有捕获字符串流的地址,您正在接收指向其内部部分的指针,它管理的 c 字符串,并将其转换为 unit8_t 指针。

所以你不能只是把它扔回去,而是你需要做的是创建第二个字符串流并从你的 c-string 数组中构造它。

s2 << sbuffer;
于 2013-11-11T20:30:17.633 回答
0

如果您想用 a 填充 a stringstreamchar table您可以使用它str(const string& s)来执行此操作。

在你的情况下:

std::stringstream s2;
s2.str(string((char*)sbuffer,sbufferlength));

或者直接使用构造函数:

std::stringstream s2(string((char*)sbuffer,sbufferlength));
于 2013-11-11T20:31:37.333 回答