getc, getwc

Lê um caractere de um fluxo.

Sintaxe

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

Parâmetros

stream
Fluxo de entrada.

Retornar valor

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 NULL, getc e getwc invocar o manipulador de parâmetro inválido, conforme descrito na validação de parâmetro. Se a execução tiver permissão para continuar, essas funções retornarão EOF (ou WEOF para ) e definirão errno como getwcEINVAL.

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 o aplicativo como escopo. Para alterar esse comportamento, consulte o 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 mais 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