3

ファイルが存在する場所の完全なパスをユーザーに尋ねてから、そのパスを配列に保持したいと思います。そのため、プログラム中にその場所にあるファイルを開きたいと思います。残念ながら、ファイルを開く方法がわかりません。次のコードを試しましたが、正しくありません。

    string address;
    cin>>address;
    ifstream file(address);

この方法でファイルを開くにはどうすればよいですか?

4

3 に答える 3

2

実際、そのコードはそのまま動作します – 少なくとも現在のバージョンの C++11 では。

その前に、文字列を C スタイルの文字列に変換する必要があります。

ifstream file(address.c_str());

CapelliC が彼の (現在は削除された) 回答で述べたように、ファイルのパスのスペースに注意する必要があります。ユーザーがスペースを含むパス (「<code>~/some file.txt」など) を入力できるようにするstd::getlineには、ストリーム演算子の代わりに次を使用します。

getline(cin, address);
于 2013-06-18T12:20:08.203 に答える
1
ofstream myfile;
myfile.open (adresse.c_str());
于 2013-06-18T12:22:11.053 に答える
0

にスペースが存在することが問題である可能性がありますaddress

代わりに getline(cin, address) を使用してみてください (問題を見つけてくれた Konrad に感謝します。私の C++ は少し錆びています...)

于 2013-06-18T12:20:51.580 に答える