1

是否有 ungetc 的 C++ 版本?

也就是说,我可以将一个角色放回 istream 上吗?

4

3 回答 3

5

是的。istream::putback与 ungetc 相同,除非使用 unget()

你不能对 unget() 撒谎。它“取消”最后读取的字符。你可以用 putback(c) 撒谎。您可以“放回”除上次读取字符之外的某些字符。有时放回最后读取字符以外的字符可能很有用。

此外,如果底层读取缓冲区确实具有缓冲能力,您可以“放回”多个字符。我认为 ungetc() 仅限于一个字符。

于 2011-08-02T16:09:28.287 回答
2

您可以使用istream::putback函数放回一个字符。如果你愿意,你甚至可以放一个不同的角色。

于 2011-08-02T16:07:36.400 回答
0

是的,http://www.cplusplus.com/reference/iostream/istream/putback/

于 2011-08-02T16:07:52.020 回答