ungetwc

来自cppreference.com
< c‎ | io
定义于头文件 <wchar.h>
wint_t ungetwc( wint_t ch, FILE *stream );
(C95 起)

ch 不等于 WEOF ,则推入宽字符 ch 到与流 stream 关联的输入缓冲区,方式满足从 stream 的后继读取操作将取得该宽字符。不修改与流关联的外部设备。

流重寻位操作 fseekfsetposrewind 弃去 ungetwc 的效果。

若调用 ungetwc 多于一次,而无中间读取或重寻位,则可能失败(换言之,保证大小为 1 的回放缓冲区,但任何更大的缓冲区是实现定义的)。若成功进行多次 ungetwc ,则读取操作以 ungetwc 的逆序取得回放的宽字符。

ch 等于 WEOF ,则操作失败而不影响流。

ungetwc 的成功调用清除文件尾状态标志 feof

在流(无论文本还是二进制)上对 ungetwc 的成功调用以未指定方式修改流位置指示器,但保证在以读取操作取得所有回放的宽字符后,流位置指示器等于其在 ungetwc 之前的值。

参数

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

返回值

成功时返回 ch

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

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.29.3.10 The ungetwc function (p: 425-426)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.24.3.10 The ungetwc function (p: 370-371)

参阅

将一个字符送回文件流
(函数)
从文件流获取一个宽字符
(函数)