关于iostream的不合理之处
最近写程序经常用到stream,发现它,实在是标准库中最复杂的一部分
除了输入输出外,居然连文本格式化都包括进来。我本来是想以二进制的方式读写一个文件,但它仍然会把非char的类型转换成为文本输出,如:
int a[LEN];
fill( a, a+LEN, 0 );
copy( a, a+LEN, ostream_iterator<int>(os) );
结果打开文件一看,里面全是'0'而不是'\0'
有时候我就想,为什么iostream就不会做成只负责二进制的读写,strstream来负责文本的读写,然后弄一个strstream_adapter来把一个文本流输出到二进制的流上门去呢?
相比起来,STL的设计就不会把你不想要的功能强加给你
难道仅仅是“历史原因”?
希望大家讨论讨论