是否有 ungetc 的 C++ 版本?
也就是说,我可以将一个角色放回 istream 上吗?
是的。istream::putback与 ungetc 相同,除非使用 unget():
你不能对 unget() 撒谎。它“取消”最后读取的字符。你可以用 putback(c) 撒谎。您可以“放回”除上次读取字符之外的某些字符。有时放回最后读取字符以外的字符可能很有用。
此外,如果底层读取缓冲区确实具有缓冲能力,您可以“放回”多个字符。我认为 ungetc() 仅限于一个字符。
您可以使用istream::putback函数放回一个字符。如果你愿意,你甚至可以放一个不同的角色。