Funzione libreria C - ungetc ()

Descrizione

La funzione di libreria C. int ungetc(int char, FILE *stream) spinge il personaggio char (an unsigned char) sul specificato stream in modo che questo sia disponibile per la successiva operazione di lettura.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione ungetc ().

int ungetc(int char, FILE *stream)

Parametri

  • char- Questo è il personaggio da rimettere a posto. Questo è passato come la sua promozione int.

  • stream - Questo è il puntatore a un oggetto FILE che identifica un flusso di input.

Valore di ritorno

In caso di successo, restituisce il carattere che è stato respinto altrimenti, viene restituito EOF e il flusso rimane invariato.

Esempio

L'esempio seguente mostra l'utilizzo della funzione 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);
}

Supponiamo di avere un file di testo file.txt, che contiene i seguenti dati. Questo file verrà utilizzato come input per il nostro programma di esempio -

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

Ora, compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:

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