2011-11-14 18 views
1

ストリームを使用しようとしたときにファイルの場所をユーザーに入力させることはできますか?私が何をしたいの入力ストリームのC++パラメータ

例:

int main() 
{ 
ifstream instream; 

string file_location; 
cout << "Enter in file location: " << endl; 
cin >> file_location; 
instream.open(file_location); 
} 

だから私は、入力にファイルの場所をそれらをしたいが、プログラムがコンパイルされません。

私は取得していますエラーメッセージは次のとおりです。

no matching function for call to 'std::basic_ifstream >::open(std::string&)'

答えて

1

ではなくinstream.open(file_location.c_str());を使用してください。

0

あなたは正しいアイデアがありますが、あなたのタイプは少し間違っています。 openは、std :: stringではなくconst char *を取ります。したがって、文字列に含まれるconst char *を指定する必要があります。 std :: stringのc_str() methodは、std :: stringを表すconst char *を返します。例えば

instream.open(file_location.c_str()); 
+0

これだった私の答えすぎ... – kol

+0

のCStringにそれを入れた後、私はまだエラーが出る:メンバーのFILE_LOCATION "の「c_str」の 要求であり、非クラス型の「char」 – knguyen2525

+1

@kol:それはそうだったし、あなたがまだ入力している間にあなたの投稿が投稿されたので、私はあなたをアップしました。 –

関連する問題