Aracılığıyla paylaş


İkili Çıktı Dosyaları

Akışlar başlangıçta metin için tasarlandığından varsayılan çıkış modu metindir. Metin modunda, satır besleme (yeni satır) karakteri bir satır başı satır besleme çiftine genişletir. Genişletme, burada gösterildiği gibi sorunlara neden olabilir:

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

Bu programın { 99, 0, 10, 0 } bayt dizisinin çıkışını yapmasını bekleyebilirsiniz; bunun yerine, ikili giriş bekleyen bir program için sorunlara neden olan { 99, 0, 13, 10, 0 } çıkışını alır. Karakterlerin çevrilmemiş olarak yazıldığı gerçek ikili çıktıya ihtiyacınız varsa, akış oluşturucu openmode bağımsız değişkenini kullanarak ikili çıktı belirtebilirsiniz:

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

Ayrıca bkz.

Çıkış Akışları