2011-08-23 58 views
2

在Visual Studio 2010中,即使使用/ Za(struct ANSI)編譯器標誌,以下代碼也可以工作。使用C++字符串打開fstream

string name = "input.txt"; 

ifstream fin; 

fin.open(name); 

我能找到的所有文檔似乎表明您必須將C字符串傳遞給ifstream :: open。現在是真的ANSI嗎,還是微軟的擴展,以及/Za標誌的問題?

感謝,

索爾

回答

8

在C++ 11,你可以直接傳遞字符串。 Visual Studio 10支持這一點。在使用C++ 11之前,您必須先傳遞一個c字符串,您可以這樣做:

fin.open(name.c_str());