命名空间
变体
操作

std::ungetwc

来自 cppreference.com
< cpp‎ | io‎ | c
 
 
 
 
定义在头文件 <cwchar>
std::wint_t ungetwc( std::wint_t ch, std::FILE* stream );

如果 ch 不等于 WEOF,则将宽字符 ch 推入与流 stream 关联的输入缓冲区,以便从 stream 进行的后续读取操作将检索该宽字符。与流关联的外部设备不会被修改。

流重定位操作 std::fseekstd::fsetposstd::rewind 会丢弃 std::ungetwc 的影响。

如果在没有进行中间读取或重定位的情况下多次调用 std::ungetwc,它可能会失败(换句话说,保证了大小为 1 的回退缓冲区,但任何更大的缓冲区都是实现定义的)。如果执行了多个成功的 std::ungetwc,读取操作将以 std::ungetwc 的相反顺序检索回退的宽字符。

如果 ch 等于 WEOF,则操作失败,流不会受到影响。

std::ungetwc 的成功调用会清除文件结束状态标志 feof

对流(无论是文本还是二进制)进行成功的 std::ungetwc 调用会以未指定的方式修改流位置指示器,但保证在所有回退的宽字符都通过读取操作检索后,流位置指示器将等于 std::ungetwc 之前的其值。

[编辑] 参数

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

[编辑] 返回值

成功时,返回 ch

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

[编辑] 另请参阅

将字符放回文件流
(函数) [编辑]
从文件流获取宽字符
(函数) [编辑]
C 文档 for ungetwc