首頁 > 後端開發 > C++ > 為什麼我的 `ifstream.open()` 不能在 Dev-C 中使用字串?

為什麼我的 `ifstream.open()` 不能在 Dev-C 中使用字串?

Mary-Kate Olsen
發布: 2024-12-02 20:53:14
原創
210 人瀏覽過

Why Doesn't My `ifstream.open()` Work with a String in Dev-C  ?

在dev cpp 中找不到ifstream 的開啟函數

提供的程式碼嘗試使用file.open(name) 開啟文件,其中名稱是一個字串。但是,此程式碼在 Visual Studio (VS) 中編譯成功,但在 dev cpp 中編譯失敗。錯誤訊息表示帶有字串參數的 open 方法沒有匹配的函數。

此問題的根本原因是在open 函數中使用字串參數的支援只是在C 11 中引入的雖然VS 支援C 11,但dev cpp 似乎使用舊版的C 標準,其中不包括此內容。

解:

要解決這個問題,有兩種方法:

  1. 使用c_str( ) : 使用c_str() 方法將字串參數轉換為字元數組,並將該數組傳遞給open函數:

    file.open(name.c_str());
    登入後複製
  2. 使用建構子: 或者,您可以使用帶有字串參數的ifstream 建構子:

    std::ifstream file(name.c_str());
    登入後複製

此外,為了避免不必要的複製,建議將字串參數傳遞給透過常數引用loadNumbersFromFile():

std::vector<int> loadNumbersFromFile(std::string const&amp; name)
登入後複製

以上是為什麼我的 `ifstream.open()` 不能在 Dev-C 中使用字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板