【发布时间】:2011-10-18 09:46:23
【问题描述】:
是否有 C++ 版本的 ungetc?
也就是说,我可以将一个字符放回 istream 吗?
【问题讨论】:
标签: c++ io iostream undo ungetc
是否有 C++ 版本的 ungetc?
也就是说,我可以将一个字符放回 istream 吗?
【问题讨论】:
标签: c++ io iostream undo ungetc
是的。 istream::putback 与 ungetc except if using unget() 相同:
你不能对 unget() 撒谎。它“取消”最后读取的字符。你 可以用 putback(c) 说谎。您可以“放回”某些字符,而不是 最后读取的字符。有时放回一个角色 最后读取的字符可能很有用。
另外,如果底层读取缓冲区确实有缓冲 能力,你可以“放回”多个角色。我想 ungetc() 仅限于一个字符。
【讨论】:
istream::unget 不是ungetc。你可以和ungetc说谎。
putback
您可以使用istream::putback 函数放回一个字符。如果你愿意,你甚至可以放置一个不同的角色。
【讨论】: