frage zu fgets / sscanf
-
ich lese eine komplette zeile mittel fgets ein. ist es dann möglich die zeile schritt für schritt auszulesen
sprich bei jedem durchlauf einmal sscanf, damit ich immer den nächsten wert aus der zeile bekomme
verhält sich das so wie bei fscanf ?!?
oder muss ich die zeile auf einmal komplett auslesen ??
-
sscanf aendert den string nicht, anders als fscanf, dass ja aus dem eingabepuffer liest.
du musst also sscanf jedes mal neue daten geben.
allerdings ist das einfach: sscanf liefert dir die anzahl der zeichen, die es eingelesen hat.folglich musst du bei dem naechsten sscanf nur den zeiger auf den puffer um genausoviele bytes nach 'rechts' verschieben.
char buffer[1000]; fgets( buffer ); size_t len=strlen(buffer); size_t p=0; while(p<len) { p+=sscanf(buffer+p, ...); }
etwa so wuerde es gehen.