scanf Sytax?



  • Hi@all,
    ich bin in Sachen C/C++ blutiger Anfänger 😕

    Ich habe folgendes Problem:
    Aus einer ASCII-Datei muß ich einen Hex-Wert auslesen, der immer in der ersten Zeile steht.
    normalerweise sieht die Zeile folgendermaßen aus:
    ==== TEST EDV on PcID 0x0E13, bla 0x74A5 ======
    Es geht mir um den PcID-Wert 0x0E13
    Den lese ich mit folgender Anweisung aus:
    fscanf(pcid,"%*s %*s %*s %*s PcID 0x%04X",&pcid_wert);

    Nun kann es aber mal vorkommen, daß die erste Zeile der Datei so aussieht:
    ==== EDV on PcID 0x0E13, bla 0x74A5 ======
    Also dachte ich mir, lese ich das folgendermaßen aus:
    fscanf(pcid,"%*[PcID ]0x%04X",&pcid_wert);

    Genau das funktioniert aber nicht, die Variable pcid_wert hat dann immer den Wert 0, mit dem sie initialisiert wurde.

    Hat irgendwer ne Idee???

    Danke schonmal 😉



  • ich würde die Zeile einfach per fgets() einlesen und selber Parsen. scanf kann IMHO nicht genug - wenn es regular expressions könnte, dann wäre es natürlich etwas anders... aber so ist es zu unflexibel um als parser verwendet zu werden.

    es ist einfach für formatierte eingabe


Anmelden zum Antworten