sscanf()

sscanf() ist in der stdio definiert, die in C über stdio.h, bzw in C++ über cstdio eingebunden wird.

Funktion

sscanf() wird dazu verwendet, um einen String zu interpretieren und in Variablen abzulegen, wie es über einen Platzhalter für String-Funktionen beschrieben ist.

Signatur

#include <stdio.h>
int sscanf( char const * input, char const * formatString, ... );

input: der zu interpretierende String.
formatString: Platzhalter für String-Funktionen, der beschreibt, wie der zu parsende String zusammengesetzt ist
: Eine Anzahl von Argumenten, entsprechend des Formatstrings

Return Value: Die Länge der geparsten Zeichen aus dem Eingabestring.

Fehlerquellen

Der Eingabestring muss dem Formatstring entsprechen. sscanf() liest aus einem String, der oft durch Eingaben des Benutzers verändert wird. Gibt der Benutzer die Daten nicht genau in dem Format ein, wie es dem Formatstring entspricht, führt dies zu willkürlichen Ergebnissen. Da der Entwickler den Benutzer nicht kontrollieren kann, kann man nicht davon ausgehen, dass die Eingaben einen Sinn ergeben. Entsprechend gefährlich ist die Verwendung von sscanf().

Beispiel

#include <stdlib.h>
#include <stdio.h>
 
int main ()
{
  int i = 0;
  char string[256];
  char input[] = "proggen.org 42"; 
 
  sscanf( input, "%s %d", &string[0], &i );
 
  printf( "String gelesen: %s\n", string );
  printf( "Integer gelesen: %d\n", i );
 
  return EXIT_SUCCESS;
}

Ausgabe:

String gelesen: proggen.org
Integer gelesen: 42

siehe auch