共用方式為


二進位輸出檔案

資料流原始的文字,設計,因此預設的輸出模式是文字。 在文字模式中,新行字元 (十六進位 10) 會展開以歸位字元 return–linefeed (16 位元)。 擴充可能會造成問題,如此處所示:

// binary_output_files.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int iarray[2] = { 99, 10 };
int main( )
{
    ofstream os( "test.dat" );
    os.write( (char *) iarray, sizeof( iarray ) );
}

您所預期這個應用程式成輸出位元組序列,{99、 0、 10,0}。 相反地,它會輸出 {99、 0、 13、 10,0},而導致必須是二進位輸入程式的問題。 如果您需要的二進位輸出,裡面的字元會寫入未轉譯的則為 true,您可以藉由指定二進位輸出 ofstream 建構函式模式] 引數:

// binary_output_files2.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int iarray[2] = { 99, 10 };

int main()
{
   ofstream ofs ( "test.dat", ios_base::binary );

   // Exactly 8 bytes written
   ofs.write( (char*)&iarray[0], sizeof(int)*2 ); 
}

請參閱

參考

輸出資料流