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

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

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

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

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

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

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

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

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

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

  • цх: Широки карактер који треба одгурнути.
  • ток: ток датотека где се широки знак одбацује уназад.

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

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

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

 #include #include #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wint_t c; long value = 0; wchar_t str() = L"u0037u0031u0039u00b6u03ee"; FILE *fp = fopen("file.txt", "r+"); fputws(str,fp); rewind(fp); while(1) ( c = fgetwc(fp); if (iswdigit(c)) value = value*10 + c - L'0'; else break; ) ungetwc(c, fp); cout << "Value = " << value << endl; fclose(fp); return 0; )

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

 Вредност = 719

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