C++使用ofstream儲存string,讀取出現亂碼的解決
阿新 • • 發佈:2020-12-15
C++使用ofstream儲存string,讀取出現亂碼的解決
昨天寫C++的作業儲存類的時候,string讀出來一直亂碼
我是使用這個儲存的
ofstream out("save.dat", ios::app|ios::binary);
out.write((char*)&st, sizeof(st));
out.close();
i //---------------------------
ifstream in("save.dat", ios::binary);
in.read ((char*)&st, sizeof(st));
in.close();
將string轉換成char【】發現就可以正常讀取了
char time_save[20];//要儲存的字元陣列
string date;//要轉換的字串
for (i = 0; i < date.length(); i++)
time_save[i] = date[i];
time_save[i] = '\0';
原因我也不是很清楚,大概是因為string是一個封裝好的類,不是原始資料型別吧。