scanf Sytax?
-
Hi@all,
ich bin in Sachen C/C++ blutiger AnfängerIch 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