_fgetchar
, _fgetwchar
Lê um caractere de stdin
.
Sintaxe
int _fgetchar( void );
wint_t _fgetwchar( void );
Valor retornado
_fgetchar retorna o caractere lido como um int
ou retorna EOF
para indicar um erro ou o fim do arquivo. _fgetwchar 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.
Comentários
Essas funções leem um único caractere de stdin
. 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.
_fgetchar
é equivalente a fgetc( stdin )
. Também é equivalente a getchar
, mas implementado apenas como uma função, e não como uma função e uma macro. _fgetwchar
é a versão de caracteres largos do _fgetchar
.
Essas funções não são compatíveis com o padrão ANSI.
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 |
---|---|---|---|
_fgettchar |
_fgetchar |
_fgetchar |
_fgetwchar |
Requisitos
Função | Cabeçalho necessário |
---|---|
_fgetchar |
<stdio.h> |
_fgetwchar |
<stdio.h> ou <wchar.h> |
Não há suporte para o console em aplicativos UWP (Plataforma Universal do Windows). Os identificadores de fluxo padrão associados ao console, stdin
, stdout
e stderr
, devem ser redirecionados antes que as funções em tempo de execução C possam usá-los em aplicativos UWP. Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_fgetchar.c
// This program uses _fgetchar 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 )
{
char buffer[81];
int i, ch;
// Read in first 80 characters and place them in "buffer":
ch = _fgetchar();
for( i=0; (i < 80 ) && ( feof( stdin ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = _fgetchar();
}
// Add null to end string
buffer[i] = '\0';
printf( "%s\n", buffer );
}
Line one.
Line two.Line one.
Line two.