ifstream 和 ofstream non-standard c++ headers 是吗?

Are ifstream and ofstream non-standard c++ headers?

好的,所以我正在编写一个涉及文件 - IO 的 C++ 控制台应用程序。在 c++ 中,要应用文件 io,您需要导入三个 header 之一,它们是 <ifstream><ofstream><fstream>。在 Visual Studio Community 2015 中,起初我写这段代码时:

#include <ifstream>
int main()
{
    std::ifstream inf("testingifstream.txt");
}

我立即注意到的第一件事是,Intellisense 给了我一个错误,指出它在打开 ifstream 时出错,因为它 "was not found"。在不同的论坛上发帖后,我得到了使用 <fstream> header 的解决方案,因为它具有用于 ifstream 和 ofstream 的 classes,然后我的代码就可以工作了。但是我只需要ifstreamclass,所以我觉得没必要把fstream也带进来。这引出了我的问题,ifstream 和 ofstream non-standard header 是 Windows Visual Studio 的,有什么办法可以包含它们吗?

是的,唯一的标准 header 是 <fstream>,包含 ifstreamofstream 类(当然还有 fstream) .

[17.6.1.2] The C++ standard library provides 55 C++ library headers, as shown in Table 14.

table中没有<ifstream><ofstream>

headers 对于 windows 是非标准的。你不能包括它们。