#include <stdiostream.h> // includes <iostream.h> and <stdio.h> class stdiobuf : public streambuf { public: stdiobuf(FILE*); FILE* stdiofile(); }; class stdiostream : public ios { public: stdiostream(FILE*); stdiobuf* rdbuf(); };
stdiobuf 类是 streambuf 的特例,使用 C stdio FILE 作为用作字符来源或目的地的实际文件的媒介。sbufprot3CC4() 和 sbufpub3CC4() 中描述了基本的 streambuf 操作。输入、输出和查找操作都反映在对关联 FILE 的更改中。例如,针对 fseek() 实现了查找函数。
stdiostream 提供了 C stdio FILE 的 C++ 接口。它采用 stdiobuf 作为其缓冲区。它不是 iostreams 的完整实现;它只有缓冲区类和 ios 类功能。C++ I/O 是通过对 C stdio getc() 和 putc() 函数的每字符调用执行的。没有常规的缓冲,因为那会破坏 C 和 C++ 访问的同步。
使用这些类之一的唯一理由是可以在同一文件中混合使用 C stdio 代码和 C++ iostream 式代码。对于新代码,请优先使用 filebuf 和 fstream,它们更加高效。
构造一个附加到 fp 指向的 FILE 结构的 stdiobuf。
返回指向与 siobuf 关联的 FILE 结构的指针。
构造一个附加到 fp 指向的 FILE 结构的 stdiostream。
返回指向与 siostr 关联的 stdiobuf 的指针。这与 ios::rdbuf() 相同,但是返回类型比较特别,是一个 stdiobuf。
ios (3CC4) 、 ios.intro (3CC4) 、 sbufprot (3CC4) 、 sbufpub (3CC4) 、 stdio (3C)
《C++ Library Reference》中的第 3 章 "The Classic iostream Library"