basic_streambuf炒锅的功能溢出和下溢如何

How the functions overflow and underflow of basic_streambuf wok

本文关键字:溢出 下溢 功能 streambuf basic      更新时间:2023-10-16

我正在阅读C++ 11标准。第 27.6.3.4.3/7 节和 27.6.3.4.5/3 节描述了函数 "int_type underflow();" 和 "int_type overflow(int_type c = traits::eof());"。没有例子可以解释它们是如何工作的。有人可以通过示例帮助解释函数吗?

基本思想非常简单。 underflow用于输入流。当输入缓冲区中没有剩余数据时,调用underflow从实际源(例如,文件或套接字)读取数据,以至少部分重新填充缓冲区。

overflow几乎相反 - 当缓冲区已满时,overflow被调用将数据写出到关联的文件或套接字,或者其他什么。它还被调用以在销毁输出流之前刷新缓冲区。