1. ホーム
  2. c++

[解決済み] なぜ関数でc_str()を使わなければならないのか [重複] [重複

2022-02-06 03:01:35

質問

C++入門」を読んでいるのですが、ファイル入力出力の章で、この本が使われています。

ifstream infile(ifile.c_str());

という文字列のファイルを開きます。 ifile .

このコードを試してみたところ、たとえ c_str() . では、それを使う意味はあるのでしょうか?

を使用する必要があります。 c_str() コマンドライン引数からファイルを開こうとするとき? 正しい使い方はどれか、という意味です。

ifstream fin( argv[1] )

または

ifstream fin( argv[1].c_str() )

解決方法は?

のコンストラクタは ifstream は、以前は const char * (これは c_str() メソッドで提供されます。

を受け取る新しいコンストラクタが存在すると思います。 std::string を参照してください。 本解答 .

また、お客様の実装に特有のものである可能性もあります。