2011-10-03 115 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。

至于什么方法是“正确的”,这一切都取决于您的应用程序的要求。探索您的所有选项并根据您的设想尽可能多地比较结果绝对是一件好事。

相关问题