最初設計流的目的是用于文本,是以預設的輸出模式就是文本方式。在以文本模式輸出時,若遇到換行符(十進制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位元組資料