C ++ ungetc () - C ++ standardbibliotek

Ungetc () -funksjonen i C ++ skyver det tidligere leste tegnet tilbake til strømmen slik at det kan leses igjen.

Ungetc () -funksjonen er definert i topptekstfilen.

ungetc () prototype

 int ungetc (int ch, FILE * stream);

Ungetc () -funksjonen skyver tegnet ch tilbake til bufferen tilknyttet filstrømmen med mindre ch er lik EOF. Hvis ch er lik EOF, mislykkes operasjonen, og det er ingen endring i strømmen.

Anrop til ungetc () kan mislykkes hvis det kalles mer enn én gang uten noen lese- eller reposisjonsoperasjon i midten.

Hvis en samtale om å fjerne samlingen () lykkes, slettes slutten på filstatusflagfeof.

For binære strømmer, reduseres en vellykket samtale om å fjerne ungetc strømposisjonsindikatoren. Hvis strømposisjonsindikatoren er null, er oppførselen ubestemt.

For en tekststrøm endrer en vellykket samtale for å avkoble strømposisjonsindikatoren på en uspesifisert måte. Men det er garantert at etter at alle trykkte tegn er hentet med en leseoperasjon, er strømposisjonsindikatoren lik verdien før den ringer ungetc ().

ungetc () Parametere

  • ch: Karakteren som skal skyves tilbake.
  • stream: File stream der tegnet skyves tilbake.

ungetc () Returverdi

  • Ved suksess returnerer ungetc () -funksjonen tegnet ch.
  • Ved svikt returneres EOF uten å endre strømmen.

Eksempel: Hvordan fungerer ungetc () -funksjonen?

 #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 kjører programmet, vil en mulig utgang være:

 Verdi = 101

Interessante artikler...