BEZEICHNUNG

scanf, fscanf, vscanf, vfscanf - Anpassung des Datei-Eingabeformats

BIBLIOTHEK

Standard-C-Bibliothek ( libc, -lc)

ÜBERSICHT

#include <stdio.h>
int scanf(const char *restrict format, …);
int fscanf(FILE *restrict datenstrom,
           const char *restrict format, …);
#include <stdarg.h>
int vscanf(const char *restrict format, va_list ap);
int vfscanf(FILE *restrict datenstrom,
           const char *restrict format, va_list ap);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):
vscanf(), vfscanf():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

BESCHREIBUNG

Die Funktionenfamilie scanf() prüft Eingaben wie sscanf(3), liest aber aus einer DATEI. Die korrekte Verwendung dieser Funktionen ist sehr schwierig und es wird empfohlen, mit fgets(3) oder getline(3) ganze Zeilen zu lesen und sie später mit sscanf(3) oder noch spezialisierteren Funktionen wie strtol(3) auszuwerten.
Die Funktion scanf() liest Eingaben von der Standardeingabe stdin, fscanf liest Eingaben von dem Datenstrom-Zeiger datenstrom.
Die Funktion vfscanf() verhält sich analog zu vfprintf(3) und liest Eingaben von dem Datenstrom-Zeiger datenstrom, wobei eine variable Argumentliste von Zeigern benutzt wird (siehe stdarg(3)). Die Funktion vscanf() ist zu vprintf(3) analog und liest aus der Standardeingabe.

RÜCKGABEWERT

Bei Erfolg geben diese Funktionen die Anzahl der Eingabeelemente zurück, die erfolgreich übereinstimmten und zugewiesen wurden. Dies können weniger sein, als bereitgestellt wurden oder null, wenn ein »matching failure« auftrat.
Der Wert EOF wird zurückgegeben, wenn das Ende der Eingabe erreicht wird, bevor entweder die erste erfolgreiche Umwandlung oder ein »matching failure« auftrat. EOF wird auch zurückgegeben, wenn ein Lesefehler auftritt. In diesem Fall wird die Fehleranzeige für den Datenstrom gesetzt (siehe ferror(3)) und errno so gesetzt, dass es den Fehler angibt.

FEHLER

EAGAIN
Der Dateideskriptor, der datenstrom zugrundeliegt, ist als nicht blockierend gekennzeichnet und die Leseaktion würde blockieren.
EBADF
Der Dateideskriptor, der datenstrom zugrundeliegt, ist ungültig oder nicht zum Lesen geöffnet.
EILSEQ
Eingabebyte-Abfolge bildet kein gültiges Zeichen.
EINTR
Die Leseaktion wurde durch ein Signal unterbrochen; siehe signal(7).
EINVAL
Nicht genug Argumente oder format ist NULL.
ENOMEM
Speicher aufgebraucht.

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle Attribut Wert
scanf(), fscanf(), vscanf(), vfscanf() Multithread-Fähigkeit MT-Safe locale
 

STANDARDS

Die Funktionen folgen C99 und POSIX.1-2001.

SIEHE AUCH

fgets(3), getline(3), sscanf(3)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <[email protected]>, Chris Leick <[email protected]> und Helge Kreutzmann <[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer