sscanf mit bekanntem aber variablen Format
-
Hallo,
ich möchte aus einer Datei zeilenweise ein paar Werte einlesen. Das zeilenweise Einlesen von strings klappt auch ganz gut, aber jetz bin ich an der Stelle wo ich aus den Strings Zahlen haben möchte und das wollte ihc mit sscanf machen
Die Zeilen haben das Format:
bezeichner=Wertalso wandle ich das mit
Wert = sscanf(zeile, "bezeichner=%d",&value);
in eine Zahl um ... jetzt hab ich aber total viele Parameter und daher möchte ich das als Funktion schreiben. Aber wie gebe ich sscanf den jeweiligen string, den es suchen soll ?
Sowas wieWert = sscanf(zeile, "%s%d",vglstring,&value);
geht ja nicht, denn dann würde sscanf ja in den vglstring EINLESEN wollen ... gibt es da was einfaches ?
grüße jesus
-
Solange du aus jeder möglichen Datenzeile die selben Typen auslesen willst, hätte ich eine Lösung:
char* fmts[]= { "bezeichner=%d", "pegel=%d", ... }; for(int typ=0;typ</*Anzahl*/;++typ) { int val; int found=sscanf(zeile,fmts[i],&val); if(found!=1) continue; ... }
(als Format-String mußt du ja nicht unbedingt ein String-Literal verwenden - jeder char* kann dort übergeben werden).
-
danke ... so einfach hätt ich es nicht erwartet ... der teil geht jedenfalls