Namespaces
Variants

std:: ungetwc

From cppreference.net
< cpp ‎ | io ‎ | c
定义于头文件 <cwchar>

如果 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