getc, getwcgetc, getwc

Lea un carácter de una secuencia.Read a character from a stream.

SintaxisSyntax

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

ParámetrosParameters

misionesstream
Flujo de entrada.Input stream.

Valor devueltoReturn Value

Devuelve el carácter leído.Returns the character read. Para indicar un error de lectura o una condición de final de archivo, GETC devuelve EOF y getwc devuelve WEOF.To indicate a read error or end-of-file condition, getc returns EOF, and getwc returns WEOF. En el caso de GETC, use ferror o feof para comprobar si hay un error o para el final del archivo.For getc, use ferror or feof to check for an error or for end of file. Si Stream es null, GETC y getwc invocan el controlador de parámetros no válidos, tal y como se describe en validación de parámetros.If stream is NULL, getc and getwc invoke the invalid parameter handler, as described in Parameter Validation. Si la ejecución puede continuar, estas funciones devuelven EOF (o WEOF para getwc) y establecen errno en EINVAL.If execution is allowed to continue, these functions return EOF (or WEOF for getwc) and set errno to EINVAL.

Consulte _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de error.See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.

ObservacionesRemarks

Cada rutina lee un solo carácter de un archivo en la posición actual y aumenta el puntero de archivo asociado (si se ha definido) para que apunte al carácter siguiente.Each routine reads a single character from a file at the current position and increments the associated file pointer (if defined) to point to the next character. El archivo está asociado a la secuencia.The file is associated with stream.

Estas funciones bloquean el subproceso de llamada y son, por consiguiente, seguras para subprocesos.These functions lock the calling thread and are therefore thread-safe. Para obtener una versión que no sea de bloqueo, consulte _getc_nolock, _getwc_nolock.For a non-locking version, see _getc_nolock, _getwc_nolock.

Comentarios específicos de la rutina.Routine-specific remarks follow.

RutinaRoutine ObservacionesRemarks
getcgetc Igual que fgetc, pero se implementa como una función y como una macro.Same as fgetc, but implemented as a function and as a macro.
getwcgetwc Versión de caracteres anchos de GETC.Wide-character version of getc. Lee un carácter multibyte o un carácter ancho en función de si la secuencia se abre en modo de texto o en modo binario.Reads a multibyte character or a wide character according to whether stream is opened in text mode or binary mode.

De forma predeterminada, el ámbito de este estado global de esta función es la aplicación.By default, this function's global state is scoped to the application. Para cambiar esto, vea estado global en CRT.To change this, see Global state in the CRT.

Asignaciones de rutina de texto genéricoGeneric-Text Routine Mappings

Rutina TCHAR.HTCHAR.H routine _UNICODE y _MBCS no definidos_UNICODE & _MBCS not defined _MBCS definido_MBCS defined _UNICODE definido_UNICODE defined
_gettc_gettc getcgetc getcgetc getwcgetwc

RequisitosRequirements

RutinaRoutine Encabezado necesarioRequired header
getcgetc <stdio.h>
getwcgetwc <stdio.h> o <wchar.h><stdio.h> or <wchar.h>

Para obtener información adicional sobre compatibilidad, consulte Compatibilidad.For additional compatibility information, see Compatibility.

EjemploExample

// 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.txtInput: crt_getc.txt

Line one.
Line two.

SalidaOutput

Input was: Line one.

Vea tambiénSee also

E/S de secuenciaStream I/O
fgetc, fgetwcfgetc, fgetwc
_getch, _getwch_getch, _getwch
putc, putwcputc, putwc
ungetc, ungetwcungetc, ungetwc