struct Test2
{
int index;
}
struct Test1
{
int id;
vector<Test2> vecTest2;
};
本意是想把Test1這個結構體寫入到二進制檔案中
寫沒有報錯,但讀取的時候在看堆疊vecTest2里的資料都是錯的
是不是存結構體的時候不能用vector啊?
但我又必須保存一個動態的陣列,請問怎么解決???
uj5u.com熱心網友回復:
低層檔案可沒什么結構只有01的二進制串,如何寫入讀取需要你來確定格式,比如可以把 vector的長度寫入進去,然后讀取時根據讀出的長度確定讀多少個test1uj5u.com熱心網友回復:
您好 讀檔案的時候vector的size是可以取出來的,就是里面存的int變數變成了隨機值
uj5u.com熱心網友回復:
您看下我讀寫的代碼
//寫
TestData data;
int nLong = vector.size() * sizeof(int);
file.Write((void*)&data, nLong);
//讀
TestData data;
file.Read((void *)&data, file.GetLength());
int size = (int)data.TestList.size();
for (int i = 0; i < size; i++)
{
int val = data.TestList[i]; //這個值讀出來不對
}
uj5u.com熱心網友回復:
vector是物件,不是一段記憶體,不能直接寫到檔案中。百度搜“vector 序列化 反序列化”
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/230068.html
標籤:C++ 語言
