是否有 C++ 版本的 ungetc?

fre*_*low 1 c++ io iostream undo ungetc

是否有 C++ 版本的 ungetc?

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

小智 5

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

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

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

  • @Martinho:那只是`putback` (2认同)