fscanf, _fscanf_l, fwscanf, _fwscanf_l
Lesen formatierte Daten aus einem Stream.Sicherere Versionen dieser Funktionen sind verfügbar. Weitere Informationen finden Sie unter fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l.
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 auf FILE Struktur.format
Formatsteuerzeichenfolge.argument
Optionale Argumente.locale
Das zu verwendende Gebietsschema.
Rückgabewert
Jede dieser Funktionen gibt die Anzahl der erfolgreich konvertierten und zugewiesenen Felder zurück. Der Rückgabewert schließt keine Felder, die gelesen wurden, jedoch kein Wert zugewiesen.Ein Rückgabewert von 0 gibt an, dass keine Felder zugewiesen wurden.Wenn ein Fehler auftritt oder wenn das Ende des Dateidatenstroms vor der ersten Konvertierung erreicht ist, ist der Rückgabewert EOF für fscanf und fwscanf.
Diese Funktionen überprüfen deren Parameter.Wenn stream oder format ein NULL-Zeiger ist, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierungbeschrieben.Wenn die Ausführung fortgesetzt werden kann, darf dieser Funktionen geben EOF festlegen und errno zu EINVAL.
Hinweise
Die fscanf-Funktion liest Daten aus der aktuellen Position von stream in die Positionen, die durch argument angegeben werden (sofern vorhanden).Jedes argument muss ein Zeiger auf eine Variable eines Typs handeln, der auf ein Typspezifizierer in formatentspricht.format steuert die Interpretation der Eingabefelder und weist das gleiche Form und Funktion wie das format-Argument für scanf. Für scanf finden Sie eine Beschreibung der format*.*
fwscanf ist eine Breitzeichen-Version von fscanf. fwscanf zu - Argument des Formats ist eine Zeichenfolge mit Breitzeichen.Diese Funktionen verhalten sich genauso identisch, wenn der Stream in ANSI-Modus geöffnet ist.derzeit nicht unterstütztfscanf Eingaben von einem UNICODE-Datenstrom.
Die Versionen dieser Funktionen mit dem _l Suffix sind identisch, mit der Ausnahme, dass sie verwenden den Gebietsschemaparameter, der anstelle des aktuellen Threads gebietsschemas übergeben wird.
Zuweisung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definieren |
_UNICODE definiert |
---|---|---|---|
_ftscanf |
fscanf |
fscanf |
fwscanf |
_ftscanf_l |
_fscanf_l |
_fscanf_l |
_fwscanf_l |
Weitere Informationen finden Sie unter Formatangaben-Felder – scanf Features und Funktionen wscanf.
Anforderungen
Funktion |
Erforderlicher Header |
---|---|
fscanf, _fscanf_l |
<stdio.h> |
fwscanf, _fwscanf_l |
<stdio.h> oder <wchar.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
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 );
}
}
.NET Framework-Entsprechung
System::EA::StreamReader::ReadLine. Siehe auch Parse-Methoden, z. B. System::::doubleAnalyse.
Siehe auch
Referenz
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_l