Frage zu getline();



  • Heyho ,

    ich hab eine frage zu getline(); , oder eher ob es eine alternative gibt.

    Denn es muss so weit ich weiß ja so aussehen :

    getline(filestream, string);
    

    Wenn ich statt dem string was anderes nehme dan gehts ja nicht , wo auch mein Problem liegt:

    test.abc :

    240
    beta 
    alpha
    

    Nun lese ich nur die erste zeile ein also 240.

    diese ist ja nun in unserem string.

    doch nun wollte ich diese 240 teilen also in der theorie :

    string / 6
    

    aber man kann ja keine zeichenketten teilen also wollte ich fragen ob es was so wie getline(); gibt bloß mit int short float.... werten ?

    Danke im voraus

    - 7xCore


  • Mod

    Kann's sein, dass das zeilenweises Einlesen gar nicht das ist, was du möchtest? Wenn du dein Dateiformat genauer beschreibst, kann man dir vielleicht besser helfen.

    Ansonsten noch zwei Hinweise:
    Die Zahl kannst du auch aus dem String rausholen (guck mal in die FAQ). Das kannst du auch schön in eine Funktion packen und hättest dann ein getline für einen anderen Datentyp. Mach ein Template draus und du hast ein getline für jeden Datentyp.

    Wenn man aber über das obig nachdenkt, sieht man, dass es nur eine umständliche Art und Weise ist, eine normale Leseaktion mit anschließendem Verwerfen der Restzeile zu machen. Das kann man sich auch einfacher aus operator>> und ignore zusammenbasteln, ohne den Umweg über getline und String(streams).



  • Doch das nur einzelne zeilen eingelesen werden soll hab ich extra gemacht z.B.:

    test.cfg

    ein titel
    der inhalt
    

    deswegen , aber nicht so wichtig.

    Die Zahl kannst du auch aus dem String rausholen (guck mal in die FAQ). Das kannst du auch schön in eine Funktion packen und hättest dann ein getline für einen anderen Datentyp. Mach ein Template draus und du hast ein getline für jeden Datentyp.

    Dankeschön ich werds mir mal ansehen , doch bis jetzt hab ich mich an templates nur wage rangetraut , also eig. fast nicht.Doch da ich es sowieso irgendwann lernen muss ,warum nicht jetzt



  • und dass mit dem lesen bestimmter zeilen hat mir ein freund gemacht :

    ...
    list<std::string> list;
    ifstream mcSetup(data1);
    string setup;
    getline(mcSetup, setup);
    int line_number = 0;
        int count_line = 0;
    
    	if( mcSetup ){
    
            while( getline(mcSetup, setup) )
            {
                if( 1 == ++count_line )
                    break;
                else
                    setup.clear();
            }
        }
    
    ...
    

Anmelden zum Antworten