使用C++ String打开fstream

sau*_*atz 2 c++ ansi visual-studio

在Visual Studio 2010中,即使使用/ Za(struct ANSI)编译器标志,以下代码也可以工作.

string name = "input.txt";

ifstream fin;

fin.open(name);
Run Code Online (Sandbox Code Playgroud)

我能找到的所有文档似乎都表明你必须将一个C字符串传递给ifstream :: open.这真的是ANSI现在,还是微软的扩展,还有/Za旗帜的问题?

谢谢,

索尔

Ben*_*ley 8

在C++ 11中,您可以直接传递字符串.Visual Studio 10支持此功能.在C++ 11之前,你必须传递一个c字符串,你可以这样做:

fin.open(name.c_str());
Run Code Online (Sandbox Code Playgroud)