Dateien öffnen und schließen



  • Hallo Leute,
    in meinem Buch steht als erstes Beispiel bei "Dateien" der folgende Quelltext:

    // PRG07_10.CPP
    //
    #include <fstream.h>
    
    void main(void)
    {
      char datei1[]="abc.rst";
      char datei2[]="def.uvw";
      char datei3[]="ghi.xyz";
      cout << "Programmstart!" << endl;
      ofstream Ausgabe;
      Ausgabe.open(datei1,ios::app,filebuf::sh_none);
      if (Ausgabe.good())
        cout << "Datei " << datei1 << " konnte geoeffnet werden." << endl;
      Ausgabe.close();
      if (Ausgabe.good())
        cout << "Datei " << datei1 << " konnte geschlossen werden." << endl;
      Ausgabe.open(datei2,ios::out,filebuf::sh_none);
      if (Ausgabe.good())
        cout << "Datei " << datei2 << " konnte geoeffnet werden." << endl;
      Ausgabe.close();
      if (Ausgabe.good())
        cout << "Datei " << datei2 << " konnte geschlossen werden." << endl;
      ofstream Ausgabe2(datei3,ios:ate,filebuf::sh_compat);
    

    ...

    Ausgabe2.open(datei2,ios::out,filebuf::sh_none);
    

    ...

    cout << "Programmende!" << endl;
    }
    

    Aus "void main(void)" habe ich "int main(int argc, char* argv[])" mit abschließendem "return 0" gemacht.
    Jetzt hab ich noch ein paar Fragen zum Code:
    1. <fstream.h> ist doch bestimmt veraltet. Was muss ich alles abändern, damit ich <fstream> benutzen kann?
    2. Ich bekomme zwei Fehlermeldungen: "error C2039: 'sh_compat': Ist kein Element von 'filebuf'" und
    "error C2065: 'sh_compat': nichtdeklarierter Bezeichner". Wie bekomme ich die weg?



  • Hi
    Ich weiß ja nicht was das für ein Lehrbuch ist aber ich mache das etwas anders:

    #include <fstream> 
    using namespace std;
    
    int main(void) 
    { 
      char datei1[]="abc.rst"; 
      char datei2[]="def.uvw"; 
      char datei3[]="ghi.xyz"; 
      cout << "Programmstart!" << endl; 
      ofstream Ausgabe; 
      Ausgabe.open(datei1,ios::app); 
      if (Ausgabe.good()) 
        cout << "Datei " << datei1 << " konnte geoeffnet werden." << endl; 
      Ausgabe.close(); 
      if (Ausgabe.good()) 
        cout << "Datei " << datei1 << " konnte geschlossen werden." << endl; 
      Ausgabe.open(datei2,ios::out); 
      if (Ausgabe.good()) 
        cout << "Datei " << datei2 << " konnte geoeffnet werden." << endl; 
      Ausgabe.close(); 
      if (Ausgabe.good()) 
        cout << "Datei " << datei2 << " konnte geschlossen werden." << endl; 
      ofstream Ausgabe2(datei3,ios:ate);
      Ausgabe2 << "Hallo Welt der Dateien!" << endl;
      Ausgabe2.close();
    return 0;
    }
    

Anmelden zum Antworten