Compartilhar via


getc, getwc

Lê um caractere de um fluxo.

Sintaxe

int getc(
   FILE *stream
);
wint_t getwc(
   FILE *stream
);

Parâmetros

stream
Fluxo de entrada.

Valor retornado

Retorna o caractere lido. Para indicar um erro de leitura ou uma condição de fim de arquivo, getc retorna EOF e getwc retorna WEOF. Para getc, use ferror ou feof para verificar se há um erro ou se o final do arquivo foi atingido. Se stream for NULLe getc chame getwc 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 retornarão EOF (ou WEOF para getwc) e serão definidas errno como EINVAL.

Para obter mais informações sobre códigos de retorno, confira errno, _doserrno, _sys_errlist e _sys_nerr.

Comentários

Cada rotina lê um único caractere de um arquivo na posição atual e incrementa o ponteiro de arquivo associado (se definido) para apontar para o caractere seguinte. O arquivo é associado a stream.

Essas funções bloqueiam o thread de chamada e, portanto, são thread-safe. Para uma versão sem bloqueio, confira _getc_nolock, _getwc_nolock.

Veja comentários específicos sobre a rotina a seguir.

Rotina Comentários
getc O mesmo que fgetc, mas implementado como uma função e como uma macro.
getwc Versão de caractere largo de getc. Lê um caractere multibyte ou um caractere largo, dependendo de stream ser aberto no modo de texto ou 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
_gettc getc getc getwc

Requisitos

Rotina Cabeçalho necessário
getc <stdio.h>
getwc <stdio.h> ou <wchar.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// crt_getc.c
// Use getc to read a line from a file.

#include <stdio.h>

int main()
{
    char buffer[81];
    int i, ch;
    FILE* fp;

    // Read a single line from the file "crt_getc.txt".

    fopen_s(&fp, "crt_getc.txt", "r");
    if (!fp)
    {
       printf("Failed to open file crt_getc.txt.\n");
       exit(1);
    }

    for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
                         && (ch != '\n'); i++)
    {
        buffer[i] = (char) ch;
    }

    // Terminate string with a null character
    buffer[i] = '\0';
    printf( "Input was: %s\n", buffer);

    fclose(fp);
}

Entrada: crt_getc.txt

Line one.
Line two.

Saída

Input was: Line one.

Confira também

E/S de fluxo
fgetc, fgetwc
_getch, _getwch
putc, putwc
ungetc, ungetwc