Funciones de la biblioteca de C -ungetc()

C 标准库 - <stdio.h>Biblioteca estándar de C - <stdio.h>

Descripción

Funciones de la biblioteca de Cint ungetc(int char, FILE *stream)Empuja el carácterchar(un carácter sin signo) hacia el flujo especificadostreampara que sea el siguiente carácter que se lea.

Declaración

La siguiente es la declaración de la función ungetc().

int ungetc(int char, FILE *stream)

Parámetros

  • char-- Este es el carácter que se va a empujar. El carácter se pasa con su valor int correspondiente.
  • stream-- Este es un puntero a un objeto FILE, que identifica el flujo de entrada.

Valor de retorno

Si tiene éxito, devuelve el carácter empujado; de lo contrario, devuelve EOF y el flujo stream permanece sin cambios.

Ejemplo

El siguiente ejemplo demuestra el uso de la función ungetc().

Ejemplo

#include <stdio.h>

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

   fp = fopen("file.txt", "r");
   if( fp == NULL )
   {
      perror("Se produjo un error al abrir el archivo");
      return(-1);
   }
   while(!feof(fp))
   {
      c = getc (fp);
      /* Reemplazar ! con + */
      if( c == '!' )
      {
         ungetc ('+', fp);
      }
      else
      {
         ungetc(c, fp);
      }
      fgets(buffer, 255, fp);
      fputs(buffer, stdout);
   }
   return(0);
}

Supongamos que tenemos un archivo de textofile.txtcuyo contenido es el siguiente. El archivo se utilizará como entrada en el ejemplo:

this is ejemplo
!c standard library
!library functions and macros

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

this is ejemplo
+c standard library
+library functions and macros

C 标准库 - <stdio.h>Biblioteca estándar de C - <stdio.h>

Otras extensiones