Fonctions de la bibliothèque C -ungetc()
Bibliothèque standard C - <stdio.h>
Description
Fonctions de la bibliothèque Cint ungetc(int char, FILE *stream)Placer le caractèrechar(un caractère non signé) poussé sur le flux spécifiéstreamafin qu'il soit le prochain caractère à lire.
Déclaration
Ci-dessous se trouve la déclaration de la fonction ungetc().
int ungetc(int char, FILE *stream)
Paramètre
- char-- Il s'agit du caractère à pousser. Ce caractère est passé comme sa valeur int correspondante.
- stream-- Il s'agit d'un pointeur vers un objet FILE qui identifie le flux d'entrée.
Valeur de retour
En cas de succès, elle renvoie le caractère poussé ; sinon, elle renvoie EOF, et le flux reste inchangé.
Exemple
L'exemple suivant montre l'utilisation de la fonction ungetc().
Exemple
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
char buffer [256];
fp = fopen("file.txt", "r");
if( fp == NULL )
{
perror("Error opening file");
return(-1);
}
while(!feof(fp))
{
c = getc (fp);
/* Remplacer ! par + */
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("Error opening file");
return(-1);
}
while(!feof(fp))
{
c = getc (fp);
/* Remplacer ! par + */
if( c == '!' )
{
ungetc ('+', fp);
}
else
{
ungetc(c, fp);
}
fgets(buffer, 255, fp);
fputs(buffer, stdout);
}
return(0);
}
Supposons que nous ayons un fichier textefile.txt, dont le contenu est le suivant. Le fichier sera utilisé comme entrée dans l'exemple :
this is example !c standard library !library functions and macros
Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :
this is example +c standard library +library functions and macrosautres extensions