加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C fstream <<和>>具有二进制数据的运算符

发布时间:2020-12-16 05:43:52 所属栏目:百科 来源:网络整理
导读:我一直在阅读并被告知,当处理二进制文件时,应该使用read()和write(),而不是和运算符用于格式化数据.我也读过可以使用它们,但它是一个高级话题,我找不到任何人潜入和讨论的地方. 我最近看到一些代码,做了以下: std::ifstream file1("x",ios_base::in | ios_b
我一直在阅读并被告知,当处理二进制文件时,应该使用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的过载).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读