ofstream seltsames Verhalten
Ich bin auf ein merkwürdiges Verhalten des Ofstream gestoßen, das für mich am wenigsten merkwürdig ist. Hier ist mein Programm, ich benutze Visual Studio 2010 Express Edition.
int main () {
std::ofstream file("file.txt");
file << "something1";
file.close();
file.open("file.txt", std::ios::ate | std::ios::in );
file << "something2";
file.close();
return 0;
}
Dies erzeugt die richtige Ausgabe.
etwas1etwas2
Wenn ich nun die 9. Zeile durch den folgenden Code ersetze,
file.open("file.txt", std::ios::ate);
Ich bekomme diese Ausgabe.
etwas2
Aber wenn ich die 9. Zeile wieder ersetze, diesmal mit diesem Code,
file.open("file.txt", std::ios::ate | std::ios::in );
Ich bekomme diese Ausgabe.
etwas1etwas2
Nun, ich denke die Frage ist, könnte mir jemand helfen, irgendeinen Sinn daraus zu machen? Warum funktioniert die letzte Lösung, die mittlere nicht?
BEARBEITEN: Die Hauptfunktion wurde korrigiert. Sie lernen jeden Tag etwas.