1
我想轉換一個int數組以字符數組,並將其寫入這樣的流:序列化/反序列化int數組以字符數組
size_t arraySize = 10;
int* intArray = new int[arraySize];
std::ostringstream buffer;
buffer << "foo1=test,arraySize=10,array=";
char* charArrayPtr = reinterpret_cast<char*>(intArray);
buffer.write(charArrayPtr,arraySize*sizeof(int));
auto str = buffer.str();
一切正常,但有一個問題,我真的無法纏住我的頭。比方說,我想反序列化字符串,爲了方便起見,我想分割字符串並使用分隔符「,」(例如)。
這隻會工作,直到int數組被轉換爲char *最終會匹配定界符,以及因爲該陣列的尺寸可以不同(10-10000000)
的另一種方式是將分割字符串一直到array=
,但如果我想稍後添加更多內容,代碼會變得更加難看,甚至更加混亂。
你們是否碰巧有任何不包含其他庫的建議?
你想實現什麼?我不明白你爲什麼要添加一個分隔符,因爲你無法信任它們。有像44這樣的數字也會在你的數據流中創建一個''''。 – JojOatXGME
另一個想法可能會讓你感興趣。有一種叫做*字節順序*的東西。一個x86架構的CPU使用* little endian *,其他架構可能會使用另一個架構。如果你想與其他系統進行通信,最好將整數轉換爲* big endian *(在許多協議中也稱爲*網絡字節順序*)。 – JojOatXGME