在dev cpp 中找不到ifstream 的開啟函數
提供的程式碼嘗試使用file.open(name) 開啟文件,其中名稱是一個字串。但是,此程式碼在 Visual Studio (VS) 中編譯成功,但在 dev cpp 中編譯失敗。錯誤訊息表示帶有字串參數的 open 方法沒有匹配的函數。
此問題的根本原因是在open 函數中使用字串參數的支援只是在C 11 中引入的雖然VS 支援C 11,但dev cpp 似乎使用舊版的C 標準,其中不包括此內容。
解:
要解決這個問題,有兩種方法:
使用c_str( ) : 使用c_str() 方法將字串參數轉換為字元數組,並將該數組傳遞給open函數:
file.open(name.c_str());
使用建構子: 或者,您可以使用帶有字串參數的ifstream 建構子:
std::ifstream file(name.c_str());
此外,為了避免不必要的複製,建議將字串參數傳遞給透過常數引用loadNumbersFromFile():
std::vector<int> loadNumbersFromFile(std::string const& name)
以上是為什麼我的 `ifstream.open()` 不能在 Dev-C 中使用字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!