Namespaces
Variants

fgetwc, getwc

Depuis fr.cppreference.net
< c | io
 
 
Entrée/sortie de fichier
Types et objets
        
Fonctions
Accès aux fichiers
(C95)
Entrée/sortie non formatée
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Entrée formatée
Entrée/sortie directe
Sortie formatée
Positionnement dans le fichier
Gestion des erreurs
Opérations sur les fichiers
 
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 depuis le flux d'entrée donné. getwc() peut être implémenté comme une macro et peut évaluer stream plus d'une fois.

Paramètres

flux - depuis lequel lire le caractère large

Valeur de retour

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

Si l'échec est dû à une condition de fin de fichier, définit en plus l'indicateur eof (voir feof()) sur stream. Si l'échec est dû à une autre erreur, définit l'indicateur error (voir ferror()) sur stream.

Si une erreur de codage s'est produite, définit en plus errno à EILSEQ.

Exemple

#include <errno.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <wchar.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 possible :

кот

Références

  • Norme C23 (ISO/IEC 9899:2024) :
  • 7.29.3.1 La fonction fgetwc (p : TBD)
  • 7.29.3.6 La fonction getwc (p : TBD)
  • Norme C17 (ISO/IEC 9899:2018) :
  • 7.29.3.1 La fonction fgetwc (p : 307-308)
  • 7.29.3.6 La fonction getwc (p : 309)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.29.3.1 La fonction fgetwc (p : 421-422)
  • 7.29.3.6 La fonction getwc (p : 424)
  • Norme C99 (ISO/IEC 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 depuis un flux de fichier
(fonction)
(C95)
obtient une chaîne large depuis un flux de fichier
(fonction)
écrit un caractère large dans un flux de fichier
(fonction)
remet un caractère large dans un flux de fichier
(fonction)
Documentation C++ pour fgetwc