Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Streams vorgesehen waren ursprünglich für Text, weshalb der Standard Ausgabemodus Text.Klicken Sie im Textmodus das Zeilenumbruchzeichen (hexadezimal 10) erweitert zu einem die zurückgegeben wird (nur 16-Bit-).Die Erweiterung kann Probleme verursachen, wie hier gezeigt:
// 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 ) );
}
Sie können dieses Programm erwarteten, um die Bytesequenz {99, 0, 10, 0} auszugeben. Stattdessen gibt sie {99, 0, 13, 10, 0} aus, für die Probleme verursacht ein Programm, das binäre Eingabe erwartet.Wenn Sie tatsächliche binäre Ausgabe benötigen, in der Zeichen unübersetzt geschrieben werden, könnten Sie die Binärdatei angegeben werden, die mithilfe des Modus arguments ofstream-Konstruktor ausgegeben:
// 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 );
}