C ++ ungetc () - C ++ Standardbibliotek

Funktionen ungetc () i C ++ skjuter tillbaka det tidigare lästa tecknet till strömmen så att det kan läsas igen.

Funktionen ungetc () definieras i rubrikfilen.

ungetc () prototyp

 int ungetc (int ch, FILE * stream);

Ungetc () -funktionen driver tecknet ch tillbaka till bufferten som är associerad med filströmmen såvida inte ch är lika med EOF. Om ch är lika med EOF misslyckas operationen och det finns ingen förändring i strömmen.

Samtal till ungetc () kan misslyckas om det anropas mer än en gång utan någon läs- eller ompositioneringsoperation i mitten.

Om ett samtal till ungetc () lyckas rensas filstatusflagens slut.

För binära strömmar minskar ett framgångsrikt samtal för att avlägsna strömmens positionspositionsindikator med en. Om strömlägesindikatorn är noll är beteendet obestämt.

För textström ändrar ett framgångsrikt samtal för att avlägsna strömpositionens indikator på ett ospecificerat sätt. Men det garanteras att efter att alla tillbakadragna tecken har hämtats med en läsoperation är strömpositionens indikator lika med sitt värde innan ungetc () anropas.

ungetc () Parametrar

  • ch: Karaktären som ska skjutas tillbaka.
  • stream: File stream där karaktären skjuts tillbaka.

ungetc () Returvärde

  • Vid framgång returnerar funktionen ungetc () tecknet ch.
  • Vid fel returneras EOF utan att strömmen ändras.

Exempel: Hur fungerar ungetc () -funktionen?

 #include #include #include using namespace std; int main() ( int c; long value = 0; char str() = "101axc"; FILE *fp = fopen("file.txt", "r+"); fputs(str,fp); rewind(fp); while(1) ( c = fgetc(fp); if (isdigit(c)) value = value*10 + c - '0'; else break; ) ungetc(c, fp); cout << "Value = " << value << endl; fclose(fp); return 0; )

När du kör programmet blir en möjlig utdata:

 Värde = 101

Intressanta artiklar...