std::ungetwc
Определено в заголовочном файле <cwchar> | ||
|---|---|---|
std::wint_t ungetwc( std::wint_t ch, std::FILE* stream ); |
Если ch не равно WEOF, помещает широкий символ ch в буфер ввода, связанный с потоком stream, таким образом, чтобы последующая операция чтения из stream извлекла этот широкий символ. Внешнее устройство, связанное с потоком, не изменяется.
Операции изменения позиции потока std::fseek, std::fsetpos, и std::rewind отбрасывают результаты std::ungetwc.
Если std::ungetwc вызывается более одного раза без промежуточного чтения или изменения позиции, это может завершиться неудачей (другими словами, гарантируется буфер для отката размером 1, но любой больший буфер определяется реализацией). Если были выполнены несколько успешных операций std::ungetwc , операции чтения извлекают помещенные широкие символы в обратном порядке выполнения std::ungetwc.
Если ch равно WEOF, операция завершается неудачей, и поток не изменяется.
Успешное вызов std::ungetwc очищает флаг конца файла feof.
Успешное вызов std::ungetwc для потока (текстового или двоичного) изменяет указатель позиции потока непредсказуемым образом, но гарантирует, что после извлечения всех помещенных широких символов с помощью операции чтения, указатель позиции потока равен его значению до вызова std::ungetwc.
Параметры
| ch | - | широкий символ, который необходимо поместить обратно |
| stream | - | поток файла, в который необходимо поместить широкий символ обратно |
Значение возврата
При успехе возвращается ch.
При неудаче возвращается WEOF и данный поток остается без изменений.
См. также
| помещает символ обратно в поток файла (функция) |
|
| получает широкий символ из потока файла (функция) |
|
Документация C для ungetwc |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/c/ungetwc