Função da biblioteca C - ungetc ()

Descrição

A função da biblioteca C int ungetc(int char, FILE *stream) empurra o personagem char (an unsigned char) no especificado stream para que esteja disponível para a próxima operação de leitura.

Declaração

A seguir está a declaração da função ungetc ().

int ungetc(int char, FILE *stream)

Parâmetros

  • char- Este é o personagem a ser colocado de volta. Isso é passado como sua promoção interna.

  • stream - Este é o ponteiro para um objeto FILE que identifica um fluxo de entrada.

Valor de retorno

Se for bem-sucedido, ele retorna o caractere que foi empurrado de volta, caso contrário, EOF é retornado e o fluxo permanece inalterado.

Exemplo

O exemplo a seguir mostra o uso da função 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);
}

Vamos supor que temos um arquivo de texto file.txt, que contém os seguintes dados. Este arquivo será usado como uma entrada para nosso programa de exemplo -

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

Agora, vamos compilar e executar o programa acima que produzirá o seguinte resultado -

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