2011-10-03 227 views
1

我正在學習C++,現在我正在閱讀有關使用文件的知識。據我所知,有很多變種。所以我想問一下,在C++中使用文件的正確方法是什麼?使用fstream(ifstream和ofstream)?我讀過一些意見,fopen的工作速度更快,所以最好使用它,但它不會是C++。 感謝您的關注!在C++中使用文件的正確方法是什麼?

+0

'fopen'也是C++的一部分(通過C子集)。 :) – iammilind

+7

請不要太注意那些說X比Y快得多的東西。大多數情況下它並不重要,但是當它發生時,請做出自己的判斷。最好的方法是使用正確的工具來完成這項工作。 –

回答

3

使用ifstreamofstream時使用C++。它不應該比FILE*慢,但更安全。

請參閱this related question

+0

爲什麼它更安全?什麼安全? – Hate

+0

比使用'FILE *'更安全。例如,你永遠不會忘記調用'close',因爲當超出範圍時'fstream'會自動關閉。 –

+0

所以它更安全,因爲它肯定會釋放資源?無論如何FILE *工作得更快。 – Hate

0

我同意Juraj對i/ofstream與FILE *的評估,我只想了解一下內存映射文件。在Boost.SpiritClassic,有一個鮮爲人知的寶石稱爲mmap_file_iterator:

http://www.boost.org/doc/libs/1_47_0/boost/spirit/home/classic/iterator/file_iterator.hpp

我相信,如果你在Windows或POSIX環境是將內存映射文件,它是一個RandomAccessIterator的而不是Input/OutputIterator。

至於什麼方法是「正確的」,這一切都取決於您的應用程序的要求。探索您的所有選項並根據您的設想盡可能多地比較結果絕對是一件好事。

相關問題