Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Fonctions fputc, putc et putchar

Entête à inclure

#include <stdio.h>  // <cstdio> en C++

Fonctions fputc, putc et putchar

int fputc( int character, FILE * stream );
int putc( int character, FILE * stream );
int putchar( int character );

Ces fonctions permettent d'écrire un caractère sur le flux de caractères passé en paramètre (sauf dans le cas de putchar ou là stdout est imposé). Une fois le caractère écrit dans le flux, la position de la tête de lecture sera déplacé pour la prochaine écriture.

En fait fputc et putc sont identiques au détail près que sur certains compilateurs la fonction putc est implémentée sous forme d'une macro.

Paramètres

Valeur de retour

En cas de succés, ces fonctions doivent renvoyer le caractère envoyé dans le flux. Par contre, en cas d'erreur, la valeur EOF sera retournée. Dans ce cas, il vous faudra alors consulter la variable errno pour obtenir de plus amples informations sur l'erreur constatée.

Codes erreurs pouvant être retournés

EAGAIN : le flux est vérrouillé et il faudra tenter ultérieurement l'écriture.

EBADF : le descripteur de flux (FILE *) passé en paramètre est invalide.

EIO : une erreur d'accès physique au flux vient d'être générée.

...

Exemple de code

#include <stdio.h>
#include <stdlib.h>

int main( int argc, char * argv[] ) {

    int counter;
    FILE * outputFile;
    
    argc--;   argv++;
    
    if ( argc == 0 ) {
        printf( "Usage: sample filename\n" );
        exit( 0 );
    }
    
    outputFile = fopen( argv[0], "w" );
    if ( outputFile == NULL ) {
        printf( "Cannot open file %s\n", argv[0] );
        exit( -1 );
    }
    
    for ( counter='a'; counter<='z'; ++counter ) {
        fputc( counter, outputFile );
    }
    fputc( '\n', outputFile );
    for ( counter='A'; counter<='Z'; ++counter ) {
        fputc( counter, outputFile );
    }
    fputc( '\n', outputFile );
    
    fclose( outputFile );
        
    return 0;
}

Sujets connexes

fgetc
fgets
fputs