10.2 I/O流模型
C++标准库提供了两种数据类型,istream用于处理输入流,ostream用于处理输出流。我们已经使用过标准输入流cin和标准输出流cout,因此我们已经了解了应该如何使用标准库中的这部分特性(通常称之为iostream库)。
一个ostream可以实现:
·将不同类型的值转换为字符序列。
·将这些字符发送到“某处”(如控制台、文件、主存或者另外一台计算机)。
我们可以用下图来表示ostream:
Buffer这一数据结构用于保存提交给ostream的数据,并通过它与操作系统通信。如果在写入ostream和字符出现在目的设备之间注意到一段“延迟”,这通常是因为字符还在缓冲区之中。缓冲技术是提高性能的重要技术,而处理大量数据时性能是很重要的。
一个istream可以实现:
·将字符序列转换为不同类型的值。
·从某处(如控制台、文件、主存或另外一台计算机)获取字符。
我们可以用下图来表示istream:
与ostream一样,istream也使用一个缓冲区与操作系统通信。istream的缓冲区在很多情况下对用户是可见的。当使用一个与键盘相关联的istream时,键入的内容都被留在缓冲区中,直至按下回车键为止(回车/换行),也可以使用清除键(退格)来“改变你的主意”(直至按下回车键为止)。 ...
Get C++程序设计:原理与实践(基础篇)(原书第2版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.