ungetwc
来自 cppreference.com
在头文件 <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,给定的流保持不变。