std::ungetwc
来自 cppreference.com
定义在头文件 <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 文档 for ungetwc
|