c++ - putback() 和 unget() 的区别

标签 c++

我正在使用标准 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/

相关文章:

c++ - 如何在 C++ 中为 boost 指针创建重载运算符?

c++ - 从其他函数中调用函数是不好的做法吗?

c++ - 在 dft 之后是否有进一步的步骤来计算相位?

C++ MSXML2 - 从 XML 中删除 namespace

c++ - 如何在 Emacs 上使用 company-c-headers

android - 如何使用 Oboe(用于 Android 的低延迟音频的 C++ 库)从 DatagramPacket 接收 byte[] 缓冲区?

c++ - 在 Windows 中为 Linux on Intel 编译 C++ 库

c++ - 子类中的重载运算符

c++ - 为什么STL Set会覆盖具有相同值的对

c++ - std::vector::erase 与 "swap and pop"