fscanf
, , _fscanf_l
fwscanf
_fwscanf_l
Lesen formatierter Daten aus einem Stream Sicherere Versionen dieser Funktionen sind verfügbar; siehe fscanf_s
, , _fscanf_s_l
, . _fwscanf_s_l
fwscanf_s
Syntax
int fscanf(
FILE *stream,
const char *format [,
argument ]...
);
int _fscanf_l(
FILE *stream,
const char *format,
_locale_t locale [,
argument ]...
);
int fwscanf(
FILE *stream,
const wchar_t *format [,
argument ]...
);
int _fwscanf_l(
FILE *stream,
const wchar_t *format,
_locale_t locale [,
argument ]...
);
Parameter
stream
Zeiger zur FILE
-Struktur.
format
Formatsteuerzeichenfolge.
argument
Optionale Argumente.
locale
Das zu verwendende Gebietsschema.
Rückgabewert
Jede dieser Funktionen gibt die Anzahl der felder zurück, die erfolgreich konvertiert und zugewiesen wurden; Der Rückgabewert enthält keine Felder, die gelesen, aber nicht zugewiesen wurden. Ein Rückgabewert von 0 gibt an, dass keine Felder zugewiesen wurden. Wenn ein Fehler auftritt oder das Ende des Dateistreams vor der ersten Konvertierung erreicht wird, ist der Rückgabewert EOF
für fscanf
und fwscanf
.
Diese Funktionen überprüfen ihre Parameter. Wenn stream
oder format
ein NULL
Zeiger ist, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen EOF
zurück und stellen errno
auf EINVAL
ein.
Hinweise
Die Funktion fscanf
liest Daten aus der aktuellen Position von stream
in die Speicherorte, die von argument
angegeben werden (falls vorhanden). Jedes argument
muss ein Zeiger auf einen Variablentyp sein, der einem Typspezifizierer im format
entspricht. format
steuert die Interpretation der Eingabefelder und weist dasselbe Formular und dieselbe Funktion wie das format
Argument scanf
auf ; siehe scanf
eine Beschreibung von format
.
fwscanf
ist eine Breitzeichenversion von fscanf
. Das fwscanf
-Formatargument ist eine Breitzeichenfolge. Diese Funktionen verhalten sich identisch, wenn der Stream im ANSI-Modus geöffnet ist. fscanf
unterstützt derzeit nicht die Eingabe aus einem UNICODE-Stream.
Die Versionen dieser Funktionen mit dem _l
-Suffix sind beinahe identisch, verwenden jedoch den ihnen übergebenen Gebietsschemaparameter anstelle des aktuellen Threadgebietsschemas.
Mapping generischer Textroutinen
TCHAR.H -Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_ftscanf |
fscanf |
fscanf |
fwscanf |
_ftscanf_l |
_fscanf_l |
_fscanf_l |
_fwscanf_l |
Weitere Informationen finden Sie unter "Formatspezifikationsfelder: scanf
und wscanf
Funktionen".
Anforderungen
Funktion | Erforderlicher Header |
---|---|
fscanf , _fscanf_l |
<stdio.h> |
fwscanf , _fwscanf_l |
<stdio.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_fscanf.c
// compile with: /W3
// This program writes formatted
// data to a file. It then uses fscanf to
// read the various data back from the file.
#include <stdio.h>
FILE *stream;
int main( void )
{
long l;
float fp;
char s[81];
char c;
if( fopen_s( &stream, "fscanf.out", "w+" ) != 0 )
printf( "The file fscanf.out was not opened\n" );
else
{
fprintf( stream, "%s %ld %f%c", "a-string",
65000, 3.14159, 'x' );
// Security caution!
// Beware loading data from a file without confirming its size,
// as it may lead to a buffer overrun situation.
// Set pointer to beginning of file:
fseek( stream, 0L, SEEK_SET );
// Read data back from file:
fscanf( stream, "%s", s ); // C4996
fscanf( stream, "%ld", &l ); // C4996
fscanf( stream, "%f", &fp ); // C4996
fscanf( stream, "%c", &c ); // C4996
// Note: fscanf is deprecated; consider using fscanf_s instead
// Output data read:
printf( "%s\n", s );
printf( "%ld\n", l );
printf( "%f\n", fp );
printf( "%c\n", c );
fclose( stream );
}
}
a-string
65000
3.141590
x
Siehe auch
Stream-E/A
_cscanf
, , _cscanf_l
_cwscanf
_cwscanf_l
fprintf
, , _fprintf_l
fwprintf
_fwprintf_l
scanf
, , _scanf_l
wscanf
_wscanf_l
sscanf
, , _sscanf_l
swscanf
_swscanf_l
fscanf_s
, , _fscanf_s_l
fwscanf_s
_fwscanf_s_l