我正在使用MinGW Developer Studio和MinGW編譯器。我有一個小程序具有以下功能:錯誤將字符串參數傳遞給fstream.open
void NameFile()
{
ofstream outfile;
string sFilename = "glatisant.html";
outfile.open(sFilename, ofstream::out);
outfile.close();
}
建設時,/編譯,我得到以下錯誤文本:
main.cpp:43: error: no matching function for call to `std::basic_ofstreamstd::char_traits >::open(std::string&, const std::_Ios_Openmode&)'
fstream:695: note: candidates are: void std::basic_ofstream<_CharT, >_Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = >std::char_traits]
根據fstream.out()的定義,我應該能夠傳遞一個字符串並使其工作,但事實並非如此。爲什麼不?
注意:錯誤消息似乎表明我的編譯器無法識別在C++ 11中定義的字符串類型參數的可能性。我想我需要讓我的環境使用C++ 11,因爲我會真的更喜歡符合現代標準的方法。
我想C++ 11將是默認的。我如何設置它? –
將'--std = C++ 11'放入make-file或compile命令中。 – deepmax
我會盡快研究;我沒有真正處理makefile,也不確切知道「編譯命令」是指什麼。 –