ein Kapitel zurück                                           ein Kapitel weiter

Wir haben in dem Kapitel zuvor sprintf kennen gelernt womit wir die Möglichkeit hatten formatiert in einen String zu schreiben. Nun ist sscanf genau das Gegenstück dazu. Mit dieser Funktion könne wir formatiert aus einem String lesen. Hier der Syntax....

int sscanf(const char *puffer, const char *format, ...);

Bei Dateiende oder Fehler gibt die Funktion EOF zurück. Hier unser kleines Example von sscanf ...

/*Download:sscanf.c*/
#include <stdio.h> #include <stdlib.h> #define NUMITEMS 4 char *namen[4] = {"Peter", "Mike", "Eva", "Johanna"}; int main(void) { int schleife; char temp[4][80]; char name[20]; int alter; long lohn; /*Wir erstellen Namen,Alter und Gehalt. Alter und Gehalt werden durch Zufallszahlen erzeugt. Alter 20-30, Lohn 27500-32500 Mit sprintf schreiben wir die Daten formatiert int temp*/ for (schleife=0; schleife < NUMITEMS; ++schleife) sprintf(temp[schleife], "%s %d %ld" ,namen[schleife],random(10)+20,random(5000)+27500L); /*Wir erstellen eine Kopfzeile*/ printf("%4s | %-20s | %5s | %15s\n", "#", "Name", "Alter", "Gehalt"); printf(" --------------------------------------------------\n"); /*Mit sscanf lesen wir die Daten formatiert aus temp aus dort wo wir zuvor mit sprintf die Daten formatiert geschreiben haben*/ for (schleife=0; schleife < NUMITEMS; ++schleife) { sscanf(temp[schleife],"%s %d %ld", &name, &alter, &lohn); printf("%4d | %-20s | %5d | %15ld\n",schleife+1,name,alter,lohn); } return 0; }

Dies stellt ein recht praktisches Beispiel da. Zuerst schreiben wir mit sprintf formatiert in das Zweidimensionale Array temp und anschließend lesen wir wieder mit sscanf formatiert aus temp.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf