ungetwc
ungetwc
在头文件 | | |
---|---|---|
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 | - | 宽字符被放回 |
---|---|---|
流 | - | 文件流将宽字符放回 |
返回值
成功时返回ch
。
失败时返回WEOF
并且给定的流保持不变。
参考
- C11标准(ISO / IEC 9899:2011):