Namespaces
Variants

fgetwc, getwc

From cppreference.net
< c ‎ | io
Definido en el encabezado <wchar.h>
wint_t fgetwc ( FILE * stream ) ;
(desde C95)
wint_t getwc ( FILE * stream ) ;
(desde C95)

Lee el siguiente carácter ancho del flujo de entrada dado. getwc ( ) puede implementarse como una macro y puede evaluar stream más de una vez.

Contenidos

Parámetros

stream - para leer el carácter ancho desde

Valor de retorno

El siguiente carácter ancho del flujo o WEOF en caso de fallo.

Si el fallo ha sido causado por una condición de fin de archivo, establece adicionalmente el indicador eof (ver feof() ) en stream . Si el fallo ha sido causado por algún otro error, establece el indicador de error (ver ferror() ) en stream .

Si ocurre un error de codificación, adicionalmente establece errno a EILSEQ .

Ejemplo

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <errno.h>
#include <locale.h>
int main(void)
{
    setlocale(LC_ALL, "en_US.utf8");
    FILE *fp = fopen("fgetwc.dat", "w");
    if(!fp) {
        perror("Can't open file for writing");
        return EXIT_FAILURE;
    }
    fputs("кошка\n", fp);
    fclose(fp);
    fp = fopen("fgetwc.dat", "r");
    if(!fp) {
        perror("Can't open file for reading");
        return EXIT_FAILURE;
    }
    wint_t wc;
    errno = 0;
    while ((wc = fgetwc(fp)) != WEOF)
        putwchar(wc);
    if (ferror(fp)) {
        if (errno == EILSEQ)
            puts("Character encoding error while reading.");
        else
            puts("I/O error when reading");
    } else if (feof(fp))
        puts("End of file reached successfully");
    fclose(fp);
}

Salida:

кошка

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.29.3.1 La función fgetwc (p: 307-308)
  • 7.29.3.6 La función getwc (p: 309)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.3.1 La función fgetwc (p: 421-422)
  • 7.29.3.6 La función getwc (p: 424)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.3.1 La función fgetwc (p: 367)
  • 7.24.3.6 La función getwc (p: 369)

Véase también

obtiene un carácter de un flujo de archivo
(función)
(C95)
obtiene una cadena ancha de un flujo de archivo
(función)
escribe un carácter ancho en un flujo de archivo
(función)
(C95)
devuelve un carácter ancho a un flujo de archivo
(función)