C ++ ungetwc () - C ++ Standard Library

Fungsi ungetwc () di C ++ mendorong karakter lebar yang telah dibaca sebelumnya kembali ke aliran sehingga bisa dibaca lagi.

Fungsi ungetwc () didefinisikan dalam file header.

ungetwc () prototipe

 wint_t ungetwc (wint_t ch, FILE * stream);

Fungsi ungetwc () mendorong karakter lebar ch kembali ke buffer yang terkait dengan aliran file kecuali ch sama dengan WEOF. Jika ch sama dengan WEOF, operasi gagal dan tidak ada perubahan dalam aliran.

Panggilan ke ungetwc () mungkin gagal jika dipanggil lebih dari sekali tanpa operasi pembacaan atau pemosisian ulang di tengah.

Jika panggilan ke ungetwc () berhasil, akhir dari tanda status file feof dihapus.

Untuk teks dan aliran biner, panggilan yang berhasil ke ungetwc mengubah indikator posisi aliran dengan cara yang tidak ditentukan. Tetapi dijamin bahwa setelah semua karakter yang didorong mundur diambil dengan operasi baca, indikator posisi aliran sama dengan nilainya sebelum memanggil ungetwc ().

ungetwc () Parameter

  • ch: Karakter lebar yang akan didorong kembali.
  • aliran: File stream di mana karakter lebar didorong kembali.

ungetwc () Nilai kembali

  • Jika berhasil, fungsi ungetwc () mengembalikan karakter ch.
  • Jika gagal, WEOF dikembalikan tanpa mengubah aliran.

Contoh: Bagaimana fungsi ungetwc () bekerja?

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

Saat Anda menjalankan program, output yang mungkin adalah:

 Nilai = 719

Artikel yang menarik...