ファイルが存在する場所の完全なパスをユーザーに尋ねてから、そのパスを配列に保持したいと思います。そのため、プログラム中にその場所にあるファイルを開きたいと思います。残念ながら、ファイルを開く方法がわかりません。次のコードを試しましたが、正しくありません。
string address;
cin>>address;
ifstream file(address);
この方法でファイルを開くにはどうすればよいですか?
実際、そのコードはそのまま動作します – 少なくとも現在のバージョンの C++11 では。
その前に、文字列を C スタイルの文字列に変換する必要があります。
ifstream file(address.c_str());
CapelliC が彼の (現在は削除された) 回答で述べたように、ファイルのパスのスペースに注意する必要があります。ユーザーがスペースを含むパス (「<code>~/some file.txt」など) を入力できるようにするstd::getline
には、ストリーム演算子の代わりに次を使用します。
getline(cin, address);
ofstream myfile;
myfile.open (adresse.c_str());
にスペースが存在することが問題である可能性がありますaddress
。
代わりに getline(cin, address) を使用してみてください (問題を見つけてくれた Konrad に感謝します。私の C++ は少し錆びています...)