Datei Einlesen



  • Hallo, ich habe ein Problem damit eine Datei einzulesen, kann mir da jemand helfen?
    Danke Leute!

    Der code:

    #include<iostream>
    #include<fstream>
    #include<string>
    #include<map>
    using namespace std;
    
    int main( int argc, char **argv){
    map<string, int> cars;
    ifstream fp(argv[1]);
    string line;
    
    if (!fp)
    return 1;
    
    getline (fp, line);
    while (!fp.eof()){
            int pos = line.find(":");
            string car = line.substr(0, pos);
            cars[car] += atoi ((line.substr(pos+1).c_str()));
            getline (fp,line);
    }
    
    for (map<string,int>::iterator i=cars.begin(); i!=cars.end(); i++){
            cout <<i->first<<":"<<i->second<<endl;
    }
    
    return 0;
    }
    

    und die datei die eingelsen werden soll cars.txt

    opel:17
    ford:19
    opel:16
    bmw:14
    ford:19
    ford:5



  • Hallo erst mal,
    damit man dir helfen kann und auch helfen wird, solltest du dir schon etwas mehr mühe geben und zumindest mal sagen was denn dein Problem ist und was du genau machen willst.

    Gruß freeG



  • Funktioniert doch...



  • Danke für den schnellen Kommentar, das Programm ist aus einer Probeklausur, mit dem Programm soll eine Datei ausgelsen werden mit dem Inhalt

    opel:17
    ford:19
    opel:16
    bmw:14
    ford:19
    ford:5

    diese dann mit dem Programm laut meiner Auffassung nach ":" die Zahl speichern in nem array dann aufsteigend sortieren.... nun bekomm ich es nicht gelaufen den ganzen Programm .. Fehlermeldung Debug Assertion Faild!
    File: fopen.c
    line:54
    Expression : file!=NULL

    ich verstehs nicht..



  • Vermutlich weil du das Programm ohne Parameter startest. Der Name der Datei wird als Parameter erwartet.

    EDIT: Davon abgesehen das dort gar nichts in einem Array gespeichert wird.



  • wie bekomm ich das Programm jetzt zum laufen??



  • Mit Parameter starten. Aus der Kommandozeile zB.



  • Jo danke an alle ist schon erledigt.


Log in to reply