Partager via


getc, getwc

Lisent un caractère d’un flux.

Syntaxe

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

Paramètres

stream
Flux d’entrée.

Valeur retournée

Retourne le caractère lu. Pour indiquer une erreur ou une condition de fin de fichier, getc retourne EOF, tandis que getwc retourne WEOF. Pour getc, utilisez ferror ou feof pour tester la présence d’une erreur ou la fin du fichier. Si stream c’est NULLle getc cas, et getwc appelez le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, ces fonctions retournent EOF (ou WEOF pour getwc) et définissent la EINVALvaleur errno .

Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Notes

Chaque routine lit un caractère à partir d’un fichier à la position actuelle et incrémente le pointeur de fichier associé (si défini) pour qu’il désigne le caractère suivant. Le fichier est associé à stream.

Ces fonctions verrouillent le thread appelant et sont donc thread-safe. Pour obtenir une version non verrouillée, consultez _getc_nolock, _getwc_nolock.

Voici une série de notes spécifiques aux routines.

Routine Notes
getc Identique à fgetc, mais implémentée en tant que fonction et que macro.
getwc Version à caractères larges de getc. Lit un caractère multioctet ou large selon que stream est ouvert en mode texte ou binaire.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_gettc getc getc getwc

Spécifications

Routine En-tête requis
getc <stdio.h>
getwc <stdio.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

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

Entrée : crt_getc.txt

Line one.
Line two.

Sortie

Input was: Line one.

Voir aussi

E/S de flux
fgetc, fgetwc
_getch, _getwch
putc, putwc
ungetc, ungetwc