Función de biblioteca C - ungetc ()

Descripción

La función de la biblioteca C int ungetc(int char, FILE *stream) empuja al personaje char (an unsigned char) en el especificado stream para que esto esté disponible para la siguiente operación de lectura.

Declaración

A continuación se muestra la declaración de la función ungetc ().

int ungetc(int char, FILE *stream)

Parámetros

  • char- Este es el personaje que se debe devolver. Esto se pasa como su promoción int.

  • stream - Este es el puntero a un objeto FILE que identifica un flujo de entrada.

Valor devuelto

Si tiene éxito, devuelve el carácter que se rechazó; de lo contrario, se devuelve EOF y la secuencia permanece sin cambios.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Supongamos que tenemos un archivo de texto file.txt, que contiene los siguientes datos. Este archivo se utilizará como entrada para nuestro programa de ejemplo:

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

Ahora, compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:

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