Funciones de la biblioteca de C -ungetc()
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);
}
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 macrosOtras extensiones