我一直閱讀和被告知,與二進制文件處理時應該使用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