FILE vs fstream

FILE vs fstream

本文关键字:fstream vs FILE      更新时间:2023-10-16

可能的重复:
std::ifstream是否明显慢于FILE
您在C++代码中使用哪个I/O库?

我想知道在C++中在FILE上使用fstream的利弊是什么?

我认为一个优点是FILE比fstream更有效率。

一个是C,一个是C++。番茄,番茄。(当你把它写出来的时候,这个表达方式几乎没有那么好用。(我猜你不太可能看到表现上的差异。

一个非常喜欢C++、反C的人可能会告诉你一些类似fstream的东西——能够更容易地处理不同的类型。使用FILE,您有两个选项——以字节为单位处理或以字符串格式处理。由于printffwrite等人不知道他们的论点的"真实"类型是什么,这更容易搞砸。还有一个事实是,C++类将有一个析构函数,因此当对象超出范围时,可以"免费"进行清理。(尽管……你真的希望像fflush这样的事情在析构函数中安静地发生吗?可能不会。(对于这些争论,我想说,使用FILE并不是一个很大的负担,但嘿,在这些问题上,有些人比我感觉更强烈。

最终,它将归结为您的应用程序正试图做什么,可能是FILEfstream或两者都能充分满足您的需求。

选择有效的方法,灵活对待他人的选择,理解争论,不要对此过于虔诚。这是我的建议。:-(

  • fstream是一个更好的封装,具有更高级别的概念
  • fstream是异常安全的
  • fstream也是一个流,一般可以作为流来处理

想象一下:

无效读取(istream&istr(

我们可以通过ifstream,iststream,甚至cin。这对于单元测试非常有用。

std::fstream是类型安全的,具有国际化支持,并且(警告:意见(更易于使用。

std::fstream超出作用域时,无论您是否忘记fstream::close(),它都会为您销毁。