fgetc
, fgetwc
Lê um caractere de um fluxo.
Sintaxe
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Parâmetros
stream
Ponteiro para a estrutura FILE
.
Valor retornado
fgetc
retorna o caractere lido como um int
ou retorna EOF
para indicar um erro ou o fim do arquivo. fgetwc
retorna, como um wint_t
, o caractere largo que corresponde ao caractere lido ou retorna WEOF
para indicar um erro ou fim de arquivo. Para ambas as funções, use feof
ou ferror
para distinguir entre um erro e uma condição de fim de arquivo. Se ocorrer um erro de leitura, o indicador de erro para o fluxo será definido. Se stream
for NULL
e fgetc
chame fgetwc
o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, essas funções definirão errno
como EINVAL
e retornarão EOF
.
Comentários
Cada uma dessas funções lê um único caractere da posição atual do arquivo associado a stream
. A função, em seguida, incrementa o ponteiro de arquivo associado (se definido) para apontar para o próximo caractere. Se o fluxo estiver no fim do arquivo, o indicador de fim de arquivo para o fluxo será definido.
fgetc
é equivalente a getc
, mas implementado somente como uma função, em vez de uma função e uma macro.
fgetwc
é a versão de caractere largo de fgetc
; lê c como um caractere multibyte ou um caractere largo quando stream
é aberto no modo de texto ou modo binário, respectivamente.
As versões com o sufixo _nolock
são idênticas, exceto pelo fato de não serem protegidas contra interferência de outros threads.
Para obter mais informações sobre o processamento de caracteres largos e caracteres multibyte nos modos de texto e binário, consulte E/S de fluxo Unicode nos modos de texto e binário.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Requisitos
Função | Cabeçalho necessário |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> ou <wchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// 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 );
}
Entrada: crt_fgetc.txt
Line one.
Line two.
Saída
Line one.
Line two.