C-Bibliotheksfunktionen -ungetc()
C-Standardbibliothek - <stdio.h>
Beschreibung
C-Bibliotheksfunktionenint ungetc(int char, FILE *stream)Zeichen ablegenchar(ein unsigned char) wird in den angegebenen Streamstream geschobensodass es das nächste zu lesende Zeichen ist.
Deklaration
Nachfolgend sehen Sie die Deklaration der Funktion ungetc().
int ungetc(int char, FILE *stream)
Parameter
- char-- Dies ist das zu schiebende Zeichen. Dieses Zeichen wird als entsprechender int-Wert übergeben.
- stream-- Dies ist ein Zeiger auf ein FILE-Objekt, das den Eingabestream identifiziert.
Rückgabewert
Bei Erfolg gibt sie das geschobene Zeichen zurück; andernfalls gibt sie EOF zurück, und der Stream bleibt unverändert.
Beispiel
Das folgende Beispiel demonstriert die Verwendung der Funktion ungetc().
Beispiel
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
char buffer [256];
fp = fopen("file.txt", "r");
if( fp == NULL )
{
perror("Fehler beim Öffnen der Datei");
return(-1);
}
while(!feof(fp))
{
c = getc (fp);
/* Ersetze ! durch + */
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("Fehler beim Öffnen der Datei");
return(-1);
}
while(!feof(fp))
{
c = getc (fp);
/* Ersetze ! durch + */
if( c == '!' )
{
ungetc ('+', fp);
}
else
{
ungetc(c, fp);
}
fgets(buffer, 255, fp);
fputs(buffer, stdout);
}
return(0);
}
Angenommen, wir haben eine Textdateifile.txt, deren Inhalt wie folgt lautet. Die Datei wird im Beispiel als Eingabe verwendet:
this is example !c standard library !library functions and macros
Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:
this is example +c standard library +library functions and macrosWeitere Erweiterungen