Fonction de bibliothèque C - ungetc ()

La description

La fonction de bibliothèque C int ungetc(int char, FILE *stream) pousse le personnage char (an unsigned char) sur le spécifié stream afin que ce soit disponible pour la prochaine opération de lecture.

Déclaration

Voici la déclaration de la fonction ungetc ().

int ungetc(int char, FILE *stream)

Paramètres

  • char- C'est le personnage à remettre. Ceci est passé comme sa promotion int.

  • stream - Il s'agit du pointeur vers un objet FILE qui identifie un flux d'entrée.

Valeur de retour

En cas de succès, il renvoie le caractère qui a été repoussé sinon, EOF est retourné et le flux reste inchangé.

Exemple

L'exemple suivant montre l'utilisation de la fonction ungetc ().

#include <stdio.h>

int main () {
   FILE *fp;
   int c;
   char buffer [256];

   fp = fopen("file.txt", "r");
   if( fp == NULL ) {
      perror("Error in opening file");
      return(-1);
   }
   while(!feof(fp)) {
      c = getc (fp);
      /* replace ! with + */
      if( c == '!' ) {
         ungetc ('+', fp);
      } else {
         ungetc(c, fp);
      }
      fgets(buffer, 255, fp);
      fputs(buffer, stdout);
   }
   return(0);
}

Supposons que nous ayons un fichier texte file.txt, qui contient les données suivantes. Ce fichier sera utilisé comme entrée pour notre programme d'exemple -

this is tutorials point
!c standard library
!library functions and macros

Maintenant, compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

this is tutorials point
+c standard library
+library functions and macros