Problem mit ofstream/ifstream (überschreiben)

XxbambamxX

Mitglied
Hi
Also ich habe wie schon gesagt ein Problem mit ofstream und ifstream.

Code:
#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std;

int main()
{
    int a=3;
    int b=4;
    int f;



            ofstream Output1("Test.t",ios::binary);
            Output1.write((char*)&a,sizeof(a));
            Output1.close();

            ifstream Input1("Test.t",ios::binary);
            Input1.read((char*)&f,sizeof(f));
            Input1.close();
            cout<<"F:"<<f<<endl;


            Output1.write((char*)&b,sizeof(b));
            Output1.close();


            Input1.read((char*)&f,sizeof(f));
            Input1.close();

    cout<<"F:"<<f<<endl;

return 0;
}

Ich möchte, dass das ausgegebene f einmal den Wert von a hat und einmal den Wert von b. aber stattdessen hat es 2mal den wert von a.
Fehlermeldungen oder Warnungen bekomme ich keine aber das F hat halt 2mal den Wert von a :(.
Wenn mir jemand helfen könnte wäre das genial.;)
PS: ich verwende den compiler CodeBlocks

mfg
 
Hi.
C++:
Output1.close();
Output1.write((char*)&b,sizeof(b));
Was meinst du denn was da passiert nachdem du Output1 geschlossen hast. Meinst du da kann dann noch etwas in die Datei geschrieben werden?
C++:
 Input1.close();
...
Input1.read((char*)&f,sizeof(f));
Meinst du von einem geschlossenen Dateistream kann noch was gelesen werden?

Du solltest Eingabe (und auch Ausgabe) Operationen immer prüfen ob auch wirklich etwas gelesen bzw. geschrieben wurde.

Gruß
 
Vielen dank erstmal für die schnelle Antwort.
Jetzt weiss ich warum es nicht funktioniert. Aber wie muss ich es denn machen damit es funktioniert?
Gibt es eine open() Funktion oder sowas in der art?
 
Zurück