ホームページ > バックエンド開発 > C++ > Dev-C では「ifstream::open()」が「一致する関数がありません」で失敗するのに、Visual Studio では失敗しないのはなぜですか?

Dev-C では「ifstream::open()」が「一致する関数がありません」で失敗するのに、Visual Studio では失敗しないのはなぜですか?

DDD
リリース: 2024-12-03 00:26:11
オリジナル
871 人が閲覧しました

Why Does My `ifstream::open()` Fail with

「一致する関数がありません - ifstream open() エラー」について

提供された C コードでは、エラー「呼び出しに一致する関数がありません」 'std::basic_ifstream::open(std::string&)' " は、文字列を使用してファイルを開こうとするときに発生します引数としてリテラル。このエラーは、dev cpp でコンパイルするときに発生しますが、VS では発生せず、プラットフォーム固有の動作を示しています。

エラーの解決

エラーを解決するには、ファイルの開始行を変更してください次のように:

file.open(name.c_str());
ログイン後にコピー

または、コンストラクターを使用してファイルを構築して開くこともできます。 stream:

std::ifstream file(name.c_str());
ログイン後にコピー

C 11 以降では、std::string 引数を使用してファイルを開くためのサポートが導入されました。ただし、dev cpp で使用されている古いバージョンの C は、この機能をサポートしていません。

追加の変更

ファイルを開く修正のほかに、次のこともお勧めします。

  • 次を使用して引数を const 参照としてloadNumbersFromFile() に渡します。 std::string const& は、関数によって変更されないことを示します。
  • 先頭の空白をスキップするには、numeric_limits::max() 値と区切り文字「n」を指定してigno​​re() メソッドを使用します。ファイルから数値のみを読み取ります。

以上がDev-C では「ifstream::open()」が「一致する関数がありません」で失敗するのに、Visual Studio では失敗しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート