Dateioperationen...



  • Hallo zusammen,
    ich habe ein Problem, ich habe ein Quellcode abgetippt aber das Funktioniert überhaupt nicht.

    #include <iostream>
    #include <fstream>
    
    int main()
    {
        ofstream outfile;
    
        outfile.open("test.txt",ios::out);
        outfile << "Das ist ein Test!"<< endl;
        outfile.clode;
        return 0;
    }
    

    ich bekomme immmer diese Fehler:

    ompiler: Default compiler
    Führt  g++.exe... aus
    g++.exe "C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp" -o "C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.exe"    -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include"  -I"C:\Dev-Cpp\include\c++\3.4.2\backward"  -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32"  -I"C:\Dev-Cpp\include\c++\3.4.2"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" 
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp: In function `int main()':
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:6: error: `ofstream' undeclared (first use this function)
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:6: error: (Each undeclared identifier is reported only once for each function it appears in.)
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:6: error: expected `;' before "outfile"
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:8: error: `outfile' undeclared (first use this function)
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:8: error: `ios' has not been declared
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:8: error: `out' undeclared (first use this function)
    C:\Dokumente und Einstellungen\Christine\Desktop\Neuer Ordner\file.cpp:9: error: `endl' undeclared (first use this function)
    
    Ausführung beendet
    

    vielleicht kann mir jemand sagen warum das nicht klappt ?

    GRuß Timb0



  • Hallo

    Deshalb soll man auch nicht einfachen abtippen sondern mitdenken. Wenn du die Grundlagen von C++ kennen würdest würdest du auch wissen das alle angemeckerten Symbole im Namespace std liegen.

    bis bald
    akari



  • Füge als einfach folgende Zeile vor deiner main Funktion ein.

    using namespace std;
    

    Ältere Compiler haben den Code auch ohne using namespace gefressen. Darum wurde es in den meisten älteren Büchern weggelassen.



  • Danke leute, ich dachte eigentlich ich hätte das mit dem Namespace schon ausprobiert, ausserdem ist es gestern beim Programmieren spät geworden ..

    Aber danke , gurß TImb0



  • Hmm beim zerstören des Objektes std::fstream wird automatisch close aufgerufen. Weiterhin hat std::fstream einen Konstruktor um direkt die Datei zu öffnen.
    Und zum Schluss gibt es noch eine operator void*. Wenn der NULL zurück gibt ist ein failbit odg. gesetzt oder die Datei konnte nicht geöffnet werden.

    #include <iostream>
    #include <fstream>
    
    int main()
    {
        std::ofstream outfile("test.txt");
        if (!outfile) { std::cerr << "FEHLER: Datei konnte nicht geöffnet werden!" << std::endl; return -1; }
    
        outfile << "Das ist ein Test!"<< std::endl;
    }
    

    ... und das ist doch schon viel besser!


Anmelden zum Antworten