Namespaces
Variants

fgetwc, getwc

From cppreference.net
< c ‎ | io
Défini dans l'en-tête <wchar.h>
wint_t fgetwc ( FILE * stream ) ;
(depuis C95)
wint_t getwc ( FILE * stream ) ;
(depuis C95)

Lit le prochain caractère large du flux d'entrée donné. getwc ( ) peut être implémenté comme une macro et peut évaluer stream plus d'une fois.

Table des matières

Paramètres

stream - pour lire le caractère large depuis

Valeur de retour

Le prochain caractère large du flux ou WEOF en cas d'échec.

Si l'échec a été causé par une condition de fin de fichier, positionne également l'indicateur eof (voir feof() ) sur stream . Si l'échec a été causé par une autre erreur, positionne l'indicateur error (voir ferror() ) sur stream .

Si une erreur d'encodage se produit, définit également errno à EILSEQ .

Exemple

#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);
}

Sortie :

кошка

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.29.3.1 La fonction fgetwc (p : 307-308)
  • 7.29.3.6 La fonction getwc (p : 309)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.29.3.1 La fonction fgetwc (p: 421-422)
  • 7.29.3.6 La fonction getwc (p: 424)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.24.3.1 La fonction fgetwc (p: 367)
  • 7.24.3.6 La fonction getwc (p: 369)

Voir aussi

obtient un caractère d'un flux de fichier
(fonction)
(C95)
obtient une chaîne large d'un flux de fichier
(fonction)
écrit un caractère large dans un flux de fichier
(fonction)
(C95)
remet un caractère large dans un flux de fichier
(fonction)