C ++ ungetc () - C ++ standaardbibliotheek

De functie ungetc () in C ++ duwt het eerder gelezen teken terug naar de stream zodat het opnieuw kan worden gelezen.

De functie ungetc () is gedefinieerd in het header-bestand.

ungetc () prototype

 int ungetc (int ch, FILE * stream);

De functie ungetc () duwt het karakter ch terug naar de buffer die bij de bestandsstroom hoort, tenzij ch gelijk is aan EOF. Als ch gelijk is aan EOF, mislukt de bewerking en is er geen verandering in de stream.

Het aanroepen van ungetc () kan mislukken als het meer dan eens wordt aangeroepen zonder enige lees- of herpositioneringsoperatie in het midden.

Als een aanroep naar ungetc () succesvol is, wordt de statusvlag voor het einde van het bestand gewist.

Voor binaire streams verlaagt een geslaagde aanroep van ungetc de streampositie-indicator met één. Als de stroompositie-indicator nul is, is het gedrag onbepaald.

Voor een tekststroom wijzigt een geslaagde oproep aan ungetc de stroompositie-indicator op een niet-gespecificeerde manier. Maar het is gegarandeerd dat nadat alle teruggedrukte tekens zijn opgehaald met een leesbewerking, de stroompositie-indicator gelijk is aan zijn waarde voordat ungetc () wordt aangeroepen.

ungetc () Parameters

  • ch: het personage dat moet worden teruggeduwd.
  • stream: bestandsstream waarin het personage wordt teruggeduwd.

ungetc () Retourwaarde

  • Bij succes geeft de functie ungetc () het teken ch.
  • Bij een storing wordt EOF geretourneerd zonder de stream te wijzigen.

Voorbeeld: hoe werkt de functie ungetc ()?

 #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; )

Wanneer u het programma uitvoert, is een mogelijke uitvoer:

 Waarde = 101

Interessante artikelen...