std::ungetwc
来自 cppreference.cn
| 在头文件 <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 的效果。
如果在没有 intervening 读取或重定位的情况下多次调用 std::ungetwc,它可能会失败(换句话说,保证大小为 1 的回推缓冲区,但任何更大的缓冲区都是实现定义的)。如果执行了多次成功的 std::ungetwc,读取操作将以 std::ungetwc 的反向顺序检索回推的宽字符。
如果 ch 等于 WEOF,则操作失败且流不受影响。
成功调用 std::ungetwc 会清除文件结束状态标志 feof。
在流(无论是文本流还是二进制流)上成功调用 std::ungetwc 会以未指定的方式修改流位置指示器,但保证在通过读取操作检索所有推回的宽字符后,流位置指示器等于其在 std::ungetwc 调用之前的值。
[编辑] 参数
| ch | - | 要回推的宽字符 |
| stream | - | 要将宽字符回推到的文件流 |
[编辑] 返回值
成功时返回 ch。
失败时返回 WEOF,给定流保持不变。
[编辑] 参阅
| 将一个字符放回文件流中 (函数) | |
| 从文件流中获取一个宽字符 (函数) | |
| 有关 ungetwc 的 C 文档
| |