Ц ++ унгетц () - Ц ++ стандардна библиотека

Функција унгетц () у Ц ++ потискује претходно прочитани знак назад у ток како би могао поново да се прочита.

Функција унгетц () је дефинисана у датотеци заглавља.

унгетц () прототип

 инт унгетц (инт цх, ФИЛЕ * ток);

Функција унгетц () гура знак цх назад у бафер повезан са током фајла, осим ако цх није једнако ЕОФ. Ако је цх једнако ЕОФ, операција не успева и нема промене у току.

Позиви унгетц () могу пропасти ако су позвани више пута без икакве операције читања или премештања у средини.

Ако је позив унгетц () успешан, обрисаће се застава статуса датотеке.

За бинарне токове, успешан позив за унгетц смањује индикатор положаја тока за један. Ако је индикатор положаја струје нула, понашање је неодређено.

За текстуални ток, успешан позив унгетц модификује индикатор положаја тока на неодређен начин. Али гарантовано је да након што се сви потиснути знакови преузму операцијом читања, индикатор положаја тока је једнак својој вредности пре позивања унгетц ().

унгетц () Параметри

  • цх: Лик који треба гурнути уназад.
  • ток: ток датотеке где се лик враћа уназад.

унгетц () Повратна вредност

  • Успехом, функција унгетц () враћа знак цх.
  • У случају неуспеха, ЕОФ се враћа без промене стрима.

Пример: Како функционише функција унгетц ()?

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

Када покренете програм, могући излаз ће бити:

 Вредност = 101

Занимљиви Чланци...