天天看點

9、流類庫與輸入/輸出2.4二進制輸出檔案

最初設計流的目的是用于文本,是以預設的輸出模式就是文本方式。在以文本模式輸出時,若遇到換行符(十進制10)便自動被擴充為回車換行符(十進制13和10)。這種自動擴充有時可能出問題,請看下列程式:

#include<fstream>

using namespace std;

int iarray[2] = {99,10};

int main()

{

 ofstream os("test.txt");

 os.write((char *)iarray,sizeof(iarray));

}

當執行程式,向檔案中輸出時,10會被自動轉換成13,然後這裡的轉換顯然不是我們需要的。要想解決這一問題,就要采用二進制模式輸出。使用二進制模式輸出時,其中所寫的字元是不轉換的,使用二進制模式輸出到檔案有下列方法:

1)使用ofstream構造函數中的模式參量指定二進制輸出模式,例如:

 ofstream os("test.txt",ios_base::binary);

 os.write((char *)iarray,4);//向二進制檔案中寫4位元組資料