Fungsi ungetwc () dalam C ++ mendorong watak lebar yang dibaca sebelumnya kembali ke aliran sehingga dapat dibaca lagi.
Fungsi ungetwc () ditentukan dalam fail header.
ungetwc () prototaip
wint_t ungetwc (wint_t ch, FILE * stream);
Fungsi ungetwc () mendorong watak lebar ch kembali ke buffer yang berkaitan dengan aliran fail kecuali ch sama dengan WEOF. Sekiranya ch sama dengan WEOF, operasi gagal dan tidak ada perubahan dalam aliran.
Panggilan ke ungetwc () mungkin gagal jika dipanggil lebih dari sekali tanpa ada operasi membaca atau menyusun semula di tengah.
Sekiranya panggilan ke ungetwc () berjaya, akhir bendera status fail dikosongkan.
Untuk aliran teks dan binari, panggilan yang berjaya untuk ungetwc mengubah penunjuk kedudukan aliran dengan cara yang tidak ditentukan. Tetapi dijamin bahawa setelah semua watak terdorong diambil dengan operasi baca, penunjuk kedudukan aliran sama dengan nilainya sebelum memanggil ungetwc ().
ungetwc () Parameter
- ch: Perwatakan yang luas untuk ditolak ke belakang.
- stream: Aliran fail di mana watak lebar ditolak ke belakang.
ungetwc () Nilai pulangan
- Pada kejayaan, fungsi ungetwc () mengembalikan watak ch.
- Pada kegagalan WEOF dikembalikan tanpa mengubah aliran.
Contoh: Bagaimana fungsi ungetwc () berfungsi?
#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; )
Semasa anda menjalankan program, output yang mungkin adalah:
Nilai = 719