Problem bei ifstream



  • hi,

    ich hab ein Problem und zwar bekomme ich bie diesem Programm den Text aus der Datei nicht ausgelesen. Obwohl etwas darin steht. Kann mir jemand helfen?

    Hier der Code

    #include <fstream.h>
    #include <conio.h>
    
    int main()
    {
            char fileName[80];
            char buffer[255];         // fuer die Benutzereingebe
            cout << "Dateiname: ";
            cin >> fileName;
    
            ofstream fout(fileName);  // zum Schreiben oeffnen
            //fout << "Diese Zeile wird direkt in die Datei geschrieben...\n";
            cout << "Bitte Text fur Datei eingeben: ";
            cin.ignore(1,'\n');       // Neue Zeiel nach dem Dateinamen entfernen
            cin.getline(buffer, 255);
            fout << buffer << "\n";   // und in die Datei schreiben
            fout.close();
    
            ifstream fin(fileName);   // zum Lesen erneut oeffnen
            cout << "So lautet der Inhalt der Datei:\n";
            char ch;
            while(fin.get(ch));
                    cout << ch;
    
            cout << "\n***Ende des Dateiinhaltes***\n";
    
            fin.close();
            getch();
            return 0;
    }
    


  • Hi Folcan,

    steht zwar alles in der FAQ, aber ich würde es so machen:

    #include <fstream>		// keine antiquierten header benutzen !!
    #include <iostream>		// fehlte für die ausgabe
    #include <string>		// fuer zeilenweises auslesen
    
    using namespace std;	// oder anstelle von cout und cin std::cout und std::cin benutzen.
    
    int main(int ac, char *av[])
    {
        char fileName[80];
        char buffer[255];         // fuer die Benutzereingebe
        cout << "Dateiname: ";
        cin >> fileName;
    
        ofstream fout(fileName);  // zum Schreiben oeffnen
        //fout << "Diese Zeile wird direkt in die Datei geschrieben...\n";
        cout << "Bitte Text fur Datei eingeben: ";
        cin.ignore(1,'\n');       // Neue Zeiel nach dem Dateinamen entfernen
        cin.getline(buffer, 255);
        fout << buffer << "\n";   // und in die Datei schreiben
        fout.close();
    
        fstream fin(fileName);    // braucht kein ifstream zu sein
        if (fin.is_open())        // öffnen geglückt
        {
            string line;      // für's zeilenweise ausgeben		
            while (getline(fin, line))    // lies genau eine Zeile
            {
                cout << line << endl;     // gib sie aus
                cout << "\n***Ende des Dateiinhaltes***" << endl;
            }
        }
        else    // fehler abfangen und benutzer informieren
        {
            cout<<"Konnte nicht geoeffnet werden!"<<endl;
            return 1;
        }
    
        getchar();    // reicht hier auch, dann ist es sogar unabhängig              
                      // von Borland
    
        return 0;
    }
    

    Gruß Mea


Anmelden zum Antworten