ungetwc
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<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 且给定流保持不变。
参考文献
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.29.3.10 ungetwc 函数 (第 425-426 页)
- C99 标准 (ISO/IEC 9899:1999):
-
- 7.24.3.10 ungetwc 函数 (第 370-371 页)
参考
|
将字符放回文件流
(函数) |
|
|
(C95)
|
从文件流获取宽字符
(函数) |
|
C++ 文档
for
ungetwc
|
|