我一直阅读和被告知,与二进制文件处理时应该使用read()和write(),而不是在< <和> >运营商,因为它们意味着运营商用于格式化数据。我也读过可以使用它们,但这是一个高级话题,我无法找到任何人潜入和讨论的地方。C++的fstream << and >>二进制数据
我最近看到一些代码,做了以下内容:
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 *并且做了一个没有格式化的直接拷贝,因此是安全的。
这是真的,也是安全的吗?效率如何?任何陷阱?详情将不胜感激。
谢谢!
这是标准页面还是什么? :)一个链接会很好! – Skurmedel 2009-08-14 15:06:03
这是对标准中段落的引用。标准本身不公开。一些草案是,但我没有一个链接手。 – AProgrammer 2009-08-14 15:12:08
好的,谢谢澄清。他们应该使标准公开。 – Skurmedel 2009-08-14 15:13:47