ungetwc
来自 cppreference.cn
| 在头文件 <wchar.h> 中定义 |
||
| wint_t ungetwc( wint_t ch, FILE *stream ); |
(自 C95 起) | |
若 ch 不等于 WEOF ,则将宽字符 ch 推入与流 stream 关联的输入缓冲区中,以便后续从 stream 的读取操作能取回该宽字符。与流关联的外部设备不被修改。
流重定位操作 fseek 、 fsetpos 及 rewind 会舍弃 ungetwc 的效果。
若多次调用 ungetwc 而中间没有读取或重定位操作,则它可能失败(换言之,保证大小为 1 的推回缓冲区,但任何更大的缓冲区由实现定义)。若进行了多次成功的 ungetwc ,则读取操作以与 ungetwc 相反的顺序取回被推回的宽字符。
若 ch 等于 WEOF ,则操作失败且流不受影响。
成功调用 ungetwc 会清除文件尾状态标志 feof。
对一个流(无论是文本流还是二进制流)成功调用 ungetwc 会以未指定的方式修改流的位置指示符,但保证在使用读取操作取回所有被推回的宽字符后,流的位置指示符等于其在 ungetwc 调用前的值。
目录 |
[编辑] 参数
| ch | - | - 要被放回的宽字符 |
| stream | - | - 要将宽字符放回的文件流 |
[编辑] 返回值
成功时返回 ch。
失败时,返回 WEOF 且给定的流保持不变。
[编辑] 引用
- C11 标准 (ISO/IEC 9899:2011)
- 7.29.3.10 ungetwc 函数 (p: 425-426)
- C99 标准 (ISO/IEC 9899:1999)
- 7.24.3.10 ungetwc 函数 (p: 370-371)
[编辑] 参阅
| 将一个字符放回文件流中 (函数) | |
| (C95) |
从文件流中获取一个宽字符 (函数) |
| C++ documentation for ungetwc
| |