RC.*_*RC. 11 c++ iostream standard-library
我总是阅读并被告知,在处理二进制文件时,应该使用read()和write()而不是<<和>>运算符,因为它们用于格式化数据.我也读过可以使用它们,但它是一个高级主题,我无法找到任何人潜入和讨论的地方.
我最近看到一些代码执行了以下操作:
std::ifstream file1("x", ios_base::in | ios_base::binary);
std::ofstream file2("y", ios_base::app | ios_base::binary);
file1 << file2.rdbuf();
当我指出使用<<运算符和二进制文件时,我被告知rdbuf()调用返回一个streambuf*并且<<重载streambuf*并执行没有格式化的直接复制,因此是安全的.
这是真的还安全吗?效率怎么样?任何陷阱?细节将不胜感激.
谢谢!
是(参见 27.6.2.5.3/6,其中描述了streambuf 的<< 重载)。
| 归档时间: |
|
| 查看次数: |
3611 次 |
| 最近记录: |