fgetc
, fgetwc
Legge un carattere dal flusso.
Sintassi
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Parametri
stream
Puntatore alla struttura FILE
.
Valore restituito
fgetc
restituisce il carattere letto come int
o restituisce EOF
per indicare un errore o la fine del file. fgetwc
restituisce, come , wint_t
il carattere wide che corrisponde al carattere letto o restituisce WEOF
per indicare un errore o una fine del file. Per entrambe le funzioni, usare feof
o ferror
per distinguere tra un errore e una condizione di fine del file. Se si verifica un errore di lettura, viene impostato l'indicatore di errore per il flusso. Se stream
è NULL
fgetc
e fgetwc
richiamare il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni impostano errno
su EINVAL
e restituiscono EOF
.
Osservazioni:
Ognuna di queste funzioni legge un singolo carattere dalla posizione corrente del file associato a stream
. La funzione quindi incrementa il puntatore del file associato (se definito) per puntare al carattere successivo. Se il flusso è alla fine del file, viene impostato l'indicatore di fine del file per il flusso.
fgetc
è equivalente a getc
, ma è implementata solo come funzione, anziché come funzione e macro.
fgetwc
è la versione a caratteri wide di fgetc
; legge c come carattere multibyte o un carattere wide quando stream
viene aperto rispettivamente in modalità testo o in modalità binaria.
Le versioni con il _nolock
suffisso sono identiche, ad eccezione del fatto che non sono protette da interferenze da altri thread.
Per altre informazioni sull'elaborazione di caratteri wide e caratteri multibyte in modalità testo e binario, vedere I/O del flusso Unicode in modalità testo e binaria.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine TCHAR.H | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Requisiti
Funzione | Intestazione obbligatoria |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// crt_fgetc.c
// This program uses getc to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
// Open file to read line from:
fopen_s( &stream, "crt_fgetc.txt", "r" );
if( stream == NULL )
exit( 0 );
// Read in first 80 characters and place them in "buffer":
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}
Input: crt_fgetc.txt
Line one.
Line two.
Output
Line one.
Line two.