getc
, getwc
Lea un carácter de una secuencia.
Sintaxis
int getc(
FILE *stream
);
wint_t getwc(
FILE *stream
);
Parámetros
stream
Flujo de entrada.
Valor devuelto
Devuelve el carácter leído. Para indicar un error de lectura o una condición de final de archivo, getc
devuelve EOF
y getwc
devuelve WEOF
. En el caso de getc
, use ferror
o feof
para comprobar si hay un error o una condición de fin de archivo. Si stream
es NULL
, getc
e getwc
invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven EOF
(o WEOF
para getwc
) y se establecen en errno
EINVAL
.
Para obtener más información sobre los códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
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. El archivo está asociado a stream
.
Estas funciones bloquean el subproceso de llamada y son, por consiguiente, seguras para subprocesos. Para consultar una versión que no sea de bloqueo, vea _getc_nolock
, _getwc_nolock
.
Comentarios específicos de la rutina.
Routine | Comentarios |
---|---|
getc |
Igual que fgetc , pero implementada como función y como macro. |
getwc |
Versión de caracteres anchos de getc . Lee un carácter multibyte o carácter ancho en función de que stream se haya abierto en modo de texto o modo binario. |
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina TCHAR.H | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_gettc |
getc |
getc |
getwc |
Requisitos
Routine | Encabezado necesario |
---|---|
getc |
<stdio.h> |
getwc |
<stdio.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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.
Output
Input was: Line one.
Consulte también
E/S de secuencia
fgetc
, fgetwc
_getch
, _getwch
putc
, putwc
ungetc
, ungetwc