Werte aus Datei lesen



  • Hi @ comm,

    ich habe vor kurzem angefangen C/C++ zu lernen
    und komme mit der Doku nicht ganz zurecht ...

    Problem:
    Ich möchte aus einer Datei zeilenweise mehrere Werte auslesen,
    der Compiler bricht mit einer Fehlermeldung ab:
    char* casts a lack ...
    Zweiter und dritter Wert werden nicht als solche übernommen ...

    auszulesende Datei sieht etwa so aus

    Meier Erwin Berlin
    Müller Erna Stuttgart
    Schmidt Eva Hamburg
    

    Source-Code

    #include <fstream>
    
    using namespace std;
    
    int main() {
        char* Name,
              Vorname,
              Ort;
    
        fstream f;
    
        cout << endl;
    
        f.open("anschrift.txt", ios::in);
    
        while ( !f.eof() ) {
            f >> Name >> Vorname >> Ort;
    
            cout << setw(12) << Name << "\t";
            cout << setw(13) << Vorname << "\t";
            cout << setw(15) << Ort << endl;
        }
    
        f.close();
    
        cout << endl;
    }
    

    Wo ist der Fehler im Code?

    In einem anderen Programm werden zeilenweise mehrere
    Zahlen ausgelesen und problemlos verarbeitet.

    Danke.
    /rgrk



  • Erstmal sind 'Vorname' und 'Ort' einfache char's (und damit zu klein für längere Namen) und hinter 'Name' hast du keinen Speicher, was vermutlich zu einer Access Violation führen wird. Verwende für die Variablen lieber std::string, da brauchst du dich um solche "Kleinigkeiten" nicht mehr kümmern.

    Und zweitens fehlt ein #include <iostream> , damit der Compiler weiß, was cout darstellen soll.



  • edit: zu langsam...



  • Danke für den Tipp,
    das Programm macht tatsächlich das was es soll ...


Anmelden zum Antworten