fscanf, _fscanf_l, fwscanf, _fwscanf_l

Dati formattati letti da un flusso.Più versioni sicure di queste funzioni sono disponibili, vedere 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 ]... 
);

Parametri

  • stream
    puntatore a FILE struttura.

  • format
    stringa del Formato-controllo.

  • argument
    argomenti facoltativi.

  • locale
    le impostazioni locali da utilizzare.

Valore restituito

Ognuna di queste funzioni restituisce il numero di campi correttamente conversione e assegnati; il valore restituito non include campi che sono stati letti ma non assegnato.Un valore restituito pari a 0 indica che nessun campo è stato assegnato.Se si verifica un errore, o se la fine del flusso di file viene raggiunta prima della prima conversione, il valore restituito è EOF per fscanf e fwscanf.

Queste funzioni convalidano i relativi parametri.se stream o format è un puntatore null, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, ritorno di queste funzioni EOF e set errno in EINVAL.

Note

fscanf la funzione legge i dati dalla posizione corrente di stream nelle posizioni fornite da argument (se presente).ciascuno argument deve essere un puntatore a una variabile di un tipo che corrisponde a un identificatore del tipo in format.format controlla interpretazione dei campi di input e presenta lo stesso form e di funzione format argomento per scanf; vedere scanf per una descrizione di format*.*

fwscanf è una versione a caratteri estesi di fscanf; l'argomento format a fwscanf è una stringa di caratteri estesi.Queste funzioni si comportano in modo identico in modo identico se il flusso viene aperto in modalità ANSI.fscanf non supporta attualmente l'input da un flusso di UNICODE.

le versioni di queste funzioni con _l il suffisso è identico con la differenza che utilizzano il parametro delle impostazioni locali passato alle impostazioni locali del thread corrente.

Mapping di routine a testo generico

routine di TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_ftscanf

fscanf

fscanf

fwscanf

_ftscanf_l

_fscanf_l

_fscanf_l

_fwscanf_l

Per ulteriori informazioni, vedere La specifica di formato sistema - funzioni denominate scanf e funzioni del wscanf.

Requisiti

Funzione

Intestazione di associazione

fscanf, _fscanf_l

<stdio.h>

fwscanf, _fwscanf_l

<stdio.h> o <wchar.h>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Esempio

// 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 );
   }
}
  

Equivalente .NET Framework

System:: I:: StreamReader:: ReadLine. vedere inoltre Parse metodi, ad esempio System:: doppio:: Di traccia.

Vedere anche

Riferimenti

Flusso I/O

_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