Open Function Not Found for ifstream in dev cpp
提供されたコードは、file.open(name) を使用してファイルを開こうとします。名前は文字列です。ただし、このコードは Visual Studio (VS) では正常にコンパイルされますが、dev cpp では正常にコンパイルされません。エラー メッセージは、文字列引数を持つ open メソッドに一致する関数がないことを示しています。
この問題の根本的な原因は、open 関数での文字列引数の使用のサポートが C 11 でのみ導入されたことです。 VS は C 11 をサポートしていますが、dev cpp はこれを含まない古いバージョンの C 標準を使用しているようです。
解決策:
この問題を解決するには、2 つのアプローチがあります:
c_str( ): c_str() メソッドを使用して文字列引数を文字配列に変換し、その配列をオープンに渡します。 function:
file.open(name.c_str());
Use Constructor: あるいは、文字列引数を取る ifstream のコンストラクターを使用することもできます:
std::ifstream file(name.c_str());
また、不要なコピーを避けるために、文字列引数を渡すことをお勧めします定数参照によるloadNumbersFromFile():
std::vector<int> loadNumbersFromFile(std::string const& name)
以上が私の `ifstream.open()` が Dev-C の文字列で機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。