ungetc 或 ungetwc 子例程

用途

将字符推送回输入流中。

标准 C 库 (libc.a)

语法

#include <stdio.h>
int ungetc ( CharacterStream)
int Character;
FILE *Stream;
wint_t ungetwc (CharacterStream)
wint_t Character;
FILE *Stream;

描述

ungetcungetwc子程序将 Character参数指定的字符(在ungetc子程序中转换为无符号字符)插入与Stream参数指定的输入流相关联的缓冲区。 这将导致下一次调用getcgetwc子程序时返回字符值。 对文件定位子程序(fseekfsetposrewind)的成功调用(数据流由Stream参数指定)会丢弃数据流中插入的任何字符。 ungetcungetwc子程序会返回字符值,并保留 Stream参数指定的文件(外部存储形式)不变。

只要从数据流中读取了内容,或者调用了 setbuf子程序,就可以将一个字符推回到数据流中。 如果在同一数据流上调用ungetcungetwc子程序太多次,而中间又没有进行读取或文件定位操作,则操作可能不会成功。 fseek子程序会擦除所有已插入字符的内存。

如果无法插入字符,ungetcungetwc子程序会返回EOFWEOF值。

成功调用ungetcungetwc子程序后,将清除Stream参数指定的数据流的文件结束符。 在读取或废弃所有插入的字符后,文件位置指示符的值与插入这些字符前的值相同。 每次成功调用ungetcungetwc子程序后,文件位置指示器的值都会降低。 如果它的值在调用之前是 0 ,那么它的值在调用之后是不确定的。

参数

描述
字符 指定字符。
指定输入流。

返回值

如果成功插入,ungetcungetwc子程序将返回插入的字符;否则将分别返回EOFWEOF