fscanf, _fscanf_l, fwscanf, _fwscanf_l

Lesen formatierte Daten aus einem Stream. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu 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 zur FILE-Struktur.

  • format
    Formatsteuerzeichenfolge.

  • argument
    Optionale Argumente.

  • locale
    Das zu verwendende Gebietsschema.

Rückgabewert

Jede dieser Funktionen gibt die Anzahl der erfolgreichen konvertierten und zugewiesenen Felder zurück; der Rückgabewert enthält Felder, die nicht gelesen wurden, jedoch nicht zugewiesen. 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 Handler für ungültige Parameter aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen EOF zurück und stellen errno auf EINVAL ein.

Hinweise

Die fscanf-Funktion liest Daten von 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 kontrolliert die Interpretation der Eingabefelder und hat die gleiche Form und Funktion wie format für das Argument scanf; finden Sie unter scanf für 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.

Zuordnung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_ftscanf

fscanf

fscanf

fwscanf

_ftscanf_l

_fscanf_l

_fscanf_l

_fwscanf_l

Weitere Informationen finden Sie unter der Seite mit den Feldern für die Formatangabe – Funktionen scanf und wscanf.

Anforderungen

Funktion

Erforderlicher Header

fscanf, _fscanf_l

<stdio.h>

fwscanf, _fwscanf_l

<stdio.h> oder <wchar.h>

Zusätzliche Informationen zur Kompatibilität 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::IO::StreamReader::ReadLine. Siehe auch Parse-Methoden wie System::Double::Parse.

Siehe auch

Referenz

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