标准输入输出的缺点
1)即使仅使用解释程序的一部分功能,所有的东西将获得装载。
2)由于解释发生在运行期间,所以不能终止这个执行。
3)由于直到运行期间才对格式串求值,一个更糟糕的问题出现了:可能没有编译时的错误检查。
4)最重要的问题是函数中的printf( )族不是能扩展的,它们被设计是用来处理C中四类基本的数据类型(字符,整型,浮点数,双精度及它们的变形)。
文件输入输出流中,fstream在不暴露文件指针来操作文件,更安全。
输入输出流以重载<<和>>等运算子进行输入输出,不采用形如"%d %l"的格式化字符。
一个流是一个格式化并保存字节的对象。可以有一个输入流(istream)或一个输出流(ostream)。有不同类型的输入流和输出流:文件输入流(ifstreams)和文件输出流(ofstreams)、char*内存的(内核格式化)输入流(istrstreams)和输出流(ostrstreams)、以及与标准C++串(string)类接口的串输入流(istringstreams)和串输出流(ostringstreams)。
strstreams,它更像一个变量和输入输出的结合体,不是中间层。
编码规范要求,只在记录日志时使用流.
(流使得 pread() 等功能函数很难执行. 如果不使用 printf 风格的格式化字符串, 某些格式化操作 (尤其是常用的格式字符串 %.*s) 用流处理性能是很低的. 流不支持字符串操作符重新排序 (%1s), 而这一点对于软件国际化很有用.)
(流的<<符号和->符号在一起使用时,可能造成代码不清晰)