我正在使用标准 iostream 从文件中获取一些输入,我对 unget()
与 putback(character)
感到困惑。在我看来,这些函数实际上是相同的,其中 unget()
只记得输入的字符,所以我很紧张。我一直用putback(character)
,但是character
总是最后读取的字符,我一直在考虑改成unget()
。如果 character
总是最后读取的字符,putback(character)
是否总是与 unget()
相同?
最佳答案
你不能对 unget()
撒谎。它“取消”最后读取的字符。你可以用 putback(c)
撒谎。您可以“放回”除上次读取字符之外的某些字符。有时放回最后读取字符以外的字符会很有用。
另外,如果底层读取缓冲区确实具有缓冲能力,您可以“放回”多个字符。我认为 ungetc()
仅限于一个字符。
编辑
没有。看起来 unget()
可以追溯到 putback()
。
关于c++ - putback() 和 unget() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769416/