2013年3月21日 星期四

C++ std::string 使用fwrite及fread

此方法不一定是最好的方法,僅為個人紀錄用,
如有更好的方法還請多指教,謝謝。

因為小弟對C++ fstream概念還是很弱,所以存取檔案都先用stdio來實作。

估狗查了一些資料,後來自己想了個最簡單又直接的方法,就是把string內的字元一個一個抓出來存,讀取的時候先把長度抓出來,再依照長度把一個一個字元塞回來。

std::string str;

//write
int strSize = str.size();
fwrite(&strSize , sizeof(int), 1, pFile);
for(int i = 0; i < strLength; i++)
{
   fwrite(str[i], sizeof(char), 1, pFile);
}

//read
int strSize = str.size();
fread(&strSize , sizeof(int), 1, pFile);
str.resize(strSize);
for(int i = 0; i < strLength; i++)
{
   fread(str[i], sizeof(char), 1, pFile);
}

沒有留言:

張貼留言