命名空间
变体
操作

std::ungetwc

来自 cppreference.cn
< cpp‎ | io‎ | c
 
 
 
 
定义于头文件 <cwchar>
std::wint_t ungetwc( std::wint_t ch, std::FILE* stream );

如果 ch 不等于 WEOF,则将宽字符 ch 推入与流 stream 关联的输入缓冲区,以便后续从 stream 读取操作将检索该宽字符。 与流关联的外部设备未被修改。

流重新定位操作 std::fseekstd::fsetposstd::rewind 将丢弃 std::ungetwc 的效果。

如果多次调用 std::ungetwc 而没有中间的读取或重新定位,则可能会失败(换句话说,保证大小为 1 的回推缓冲区,但任何更大的缓冲区都是实现定义的)。 如果执行了多次成功的 std::ungetwc,则读取操作将按 std::ungetwc 的相反顺序检索回推的宽字符

如果 ch 等于 WEOF,则操作失败,并且流不受影响。

成功调用 std::ungetwc 会清除文件结束状态标志 feof

在流(文本或二进制)上成功调用 std::ungetwc 会以未指定的方式修改流位置指示器,但保证在所有回推的宽字符都通过读取操作检索后,流位置指示器等于其在 std::ungetwc 之前的值。

[编辑] 参数

ch - 要放回的宽字符
stream - 要将宽字符放回的文件流

[编辑] 返回值

成功时返回 ch

失败时返回 WEOF,并且给定的流保持不变。

[编辑] 参见

(function) [编辑]
将字符放回文件流中
(function) [编辑]
从文件流中获取宽字符
C 文档 for ungetwc