C ++ ungetc () - C ++ standardraamatukogu

Funktsioon ungetc () funktsioonis C ++ surub varem loetud märgi voogu tagasi, et seda saaks uuesti lugeda.

Funktsioon ungetc () on määratletud päisefailis.

ungetc () prototüüp

 int ungetc (int ch, FILE * voog);

Funktsioon ungetc () lükkab märgi ch tagasi failivooga seotud puhvrisse, välja arvatud juhul, kui ch on võrdne EOF-ga. Kui ch on võrdne EOF-iga, ebaõnnestub toiming ja voos pole muudatusi.

Kutsed ungetc () -le võivad ebaõnnestuda, kui seda kutsutakse rohkem kui üks kord, ilma et keskel oleks lugemis- või ümberpaigutamistoiminguid.

Kui kutse ungetc-le () õnnestub, kustutatakse faili oleku lipu lõpp.

Binaarsete voogude korral vähendab edukas kõne eemaldamiseks vooasendi indikaatorit ühe võrra. Kui vooasendi indikaator on null, on käitumine määramatu.

Tekstivoo korral muudab edukas kõne eemaldamiseks vooasendi indikaatorit täpsustamata viisil. Kuid on tagatud, et pärast seda, kui kõik tagasilükatud tähemärgid on lugemisoperatsiooniga kätte saadud, on voo asukoha indikaator võrdne selle väärtusega enne ungetc () kutsumist.

ungetc () parameetrid

  • ch: tegelane, keda tuleb tagasi lükata.
  • voog: failivoog, kus märk lükatakse tagasi.

ungetc () Tagastusväärtus

  • Edu korral tagastab funktsioon ungetc () märgi ch.
  • Rikke korral tagastatakse EOF voogu muutmata.

Näide: kuidas funktsioon ungetc () töötab?

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

Programmi käivitamisel on võimalik väljund:

 Väärtus = 101

Huvitavad Artiklid...