我有一個tcp客戶端從服務器獲取數據作爲stringstream。服務器將向量(浮點數)打包成一個大字符串,並用標誌分隔這些向量(浮點數)。現在在我的客戶端中,我再次分離這些標誌,並將它們存儲在一個字符串數組中。所以每個「令牌」應該是一個向量。 但我只是不能解析它。我得到的字符串看起來很奇怪,看看:使用stringstream,我如何解析這些字符串?
所以我需要做的就是解析它回到3個花車。在服務器端的發送是這樣的:
data.addFlag(11);
data << pelvis.x() << pelvis.y() << pelvis.z();
data.addFlag(12);
data << rhip.x() << rhip.y() << rhip.z();
哪裏算超載爲
operator<<(const float& f)
{
m_buf.append(reinterpret_cast<const char*>(&f), sizeof(f));
return *this;
}
編輯:
一個令牌是這樣的:如果我試圖通過解析它
float first = *reinterpret_cast<float*>(value)
我收到一個異常。
感謝你的幫助,我編輯的問題,瞭解更多詳情。當我嘗試像你說的那樣做時,我得到一個異常。 「在0x013007BB未處理的異常」...任何想法? – 2013-03-21 09:51:46
什麼樣的數據類型是'tokens'?試試:'std :: string test = tokens;'如果標記已經是一個字符串。或者'std :: string test = tokens.str()'如果標記是一個字符串流。 – RedX 2013-03-21 10:42:49
啊對不起。令牌是std :: vector令牌;它由串流 –
2013-03-21 10:46:13