Daten einlesen



  • Hallo,

    ich habe zwei kurze Fragen zum Einlesen von Daten aus einer ASCII-Datei.

    Zuerst möchte ich gerne eine Textzeile einlesen, die folgende Form hat:

    .PARAM1 = TRUE
    

    Wenn ich diese Zeile mit fscanf einlese, verschwindet stets der Ausdruck hinter dem Gleichheitszeichen.

    fscanf(fp,"%s", line);
    printf("|%s|\n", line);
    

    Zweitens möchte ich eine ASCII-Datei einlesen, in der Zahlen in Spalten angeordnet sind. Wie liest man so etwas am besten ein, um die Daten dann in Variablen zu speichern?
    Beispieldatei.txt

    14.159   8.145   9   77777.78
    

    Die Zahlen können durch Tabulatoren oder durch Leerzeichen voneinander getrennt sein....

    Vielen Dank bereits im Voraus



  • Hi!
    Du musst deinen Formatstring entsprechend anpassen. Hast du z.B. nur ein %s drin, wird auch nur eine Zeichenkette eingelesen, usw..

    Grup,
    B.B.



  • zu 1. wenn du eine Zeile einlesen willst, dann nimm einfach man: fgets



  • 1. Warum geht denn fgets nicht für Aufgabe 1)?

    2. Sind Tabulatoren als Trennzeichen auch möglich in der Textdatei, wenn ich folgende Zeile verwende? Bzw. ist die Anzahl der Leerzeichen beliebig?

    fscanf(fp,"%f %f %d", floatvar1, floatvar2, intvar1);
    


  • Wenn du ein whitespace im Formatstring hast, z.B. das Leerzeichen, dann werden alle whitespaces im Eingabestrom an der betreffenden Position bis zum Vorkommen eines nicht-whitespacs ignoriert.
    Sieh dir die Doku zu fscanf an, da sollte das drin stehen.

    Gruß,
    B.B.


Anmelden zum Antworten