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/cpp/io/c/ungetwc