Konfigurationsdatei lesen



  • Hallo!

    Ich bräuchte Hilfe beim Einlesen einer Datei.
    Ich habe eine Datei die zeilenweise eingelesen werden soll (Leerzeichen sollen ignoriert werden).

    Die Datei sieht folgendermaßen aus:

    plus 105 50
    minus 700 123
    mult 5

    Die Ausgaben dürfen nur erfolgen wenn die Eingaben gültig sind. Kann mir bitte jemand helfen ? Ich habe bereits eine Funktion welche überprüft ob das File existiert soweit funktionierts mal, das einlesen und ausgeben will allerdings nicht so funktionieren wie ich will.

    Mfg



  • Nun ja: Du könntest erst ein Wort einlesen (mit scanf() ).
    Abhängig vom Inhalt des Worts liest Du dann ein oder zwei Zahlen ein.

    Das ist nicht schwer. Die Dokumentation zu scanf() musst Du halt bemühen.



  • hi aber scanf kann doch nicht funktionieren da die datei dann doch fest formatiert sein müsste oder ? lg



  • Lies jeweils eine Zeile mit fgets und separiere die Worte aus dem Zeilenstring mit sscanf und baue dann die Logik auf.



  • hi ok danke erstmal ich bin nun soweit

    while(fgets(line, 60 , fp))
      {
    
        strcpy(line, data); 
        line[strlen(line) - 1] = '\0';
    
    	counter++;
      }
    

    Gibt es eine Möglichkeit eventuelle Leerzeichen zu ignorieren mit einer if ?


  • Mod

    tfb23 schrieb:

    Gibt es eine Möglichkeit eventuelle Leerzeichen zu ignorieren mit einer if ?

    Ja, aber wozu? Das bringt dich doch nicht näher an die Lösung deines Problems (eine gute Lösung haben Furble Wurble und Wutz beide beschrieben). Im Gegenteil, aus

    plus 105 50
    

    würde

    plus10550
    

    Toll! Und weiter?

    while(fgets(line, 60 , fp))
      {
       
        strcpy(line, data);
        line[strlen(line) - 1] = '\0';
       
        counter++;
      }
    

    Das sieht komisch aus. Wieso liest du nicht direkt in data? Was macht der counter? Mindestens eine dieser Aktionen macht nicht das, was du willst (oder du willst komische Dinge), aber ohne Kontext kann man mehr nicht sagen.

    tfb23 schrieb:

    hi aber scanf kann doch nicht funktionieren da die datei dann doch fest formatiert sein müsste oder ? lg

    Lies Furble Wurbles Beitrag genau!

    Furble Wurble schrieb:

    Abhängig vom Inhalt des Worts liest Du dann ein oder zwei Zahlen ein.



  • SeppJ schrieb:

    while(fgets(line, 60 , fp))
      {
       
        strcpy(line, data);
    

    Wieso komisch? Das ist direkt falsch, da falsch herum kopiert wird.


  • Mod

    Wutz schrieb:

    SeppJ schrieb:

    while(fgets(line, 60 , fp))
      {
       
        strcpy(line, data);
    

    Wieso komisch? Das ist direkt falsch, da falsch herum kopiert wird.

    Stimmt, das auch noch, darauf habe ich nicht einmal geachtet. Aber es untermauert noch, dass der Threadersteller hier bloß ein bisschen Code ins Forum geschmiert hat, nicht einmal ausprobiert hat er das.


Anmelden zum Antworten