Sdílet prostřednictvím


Binární výstupní soubory

Datové proudy byly původně určena pro text, takže text je výchozí režim výstupu.V textovém režimu se přizpůsobí znak (hexadecimální 10) přeprava return–linefeed (pouze 16 bitů).Rozšíření může způsobit potíže, jak je znázorněno zde:

// 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 ) );
}

By se dalo očekávat tento program výstup sekvence bajtů {99, 0, 10, 0}; Místo toho vyprodukuje {99, 0, 13, 10, 0}, které způsobuje potíže programu očekáván binární vstup.Pokud potřebujete true binární výstup, ve kterém jsou zapsány znaky nepřeložený, můžete zadat pomocí binární výstup ofstream režimu argument konstruktoru:

// 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 ); 
}

Viz také

Referenční dokumentace

Výstupní datové proudy