M
visitor007 schrieb:
möchte ich in zwei verschiedene Puffern wie "[enable signature]" und "yes"
einlesen. Ich habe viele verschiedene formats ausprobiert, aber fscanf hat
immer wieder versagt.
So geht's:
fscanf (cfg_h, "[%[^]]%*2s%s", cfg_parm, cfg_val);
Erklärung:
Das erste [ ist ja klar. Danach (%[^]]) liest er alles ein, bis auf ein ], wo er auch stoppt. Dann liest er zwei weitere Zeichen ein (] und =), die allerdings, wegen des Sternchens, ignoriert und nicht gespeichert werden. Als letztes kommt dann noch der String mit dem Wert.
visitor007 schrieb:
Versuch:
fscanf(cfg_h, "%s=%s\n", cfg_parm, cfg_val);
oder
fscanf(cfg_h, "[%s]=%s\n", cfg_parm, cfg_val);
Woran scheitert fscanf mit solchen Formaten?
Danke,
Wenn du einen String einliest, hält dieser i.d.R. erst bei einem Whitespace oder nach einer bestimmten (festgelegten) Anzahl von Zeichen.
Vielleicht hilft dir das: http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/
Gez. monstermunchkin