1

istream でファイルを開こうとすると、開かない (is_open() が false を返す)。ファイルにアクセスするためにファイルを配置する必要がある特定のディレクトリはありますか (プロジェクトの出力ディレクトリにあります)?

ifstream ifile;
ifile.open("test.txt");
if(!ifile.is_open()){
    cout << "The file could not be opened." << endl;
}
cin.get();
4

4 に答える 4

4

プログラムの「作業ディレクトリ」にある必要があります。これは、プログラムを実行するときのディレクトリ、または Visual Studio などの IDE を使用している場合はプロジェクトのディレクトリ (Release および/または Debug ビルド フォルダーも含むディレクトリ) です。

于 2011-04-25T13:46:02.150 に答える
2

ファイルへの正しいパスを指定する必要があります。プロジェクトの構造はわかりませんが、次のようなものです。

ifile.open("output/test.txt");
于 2011-04-25T13:45:37.297 に答える
2

私は Linux マシンで作業しており、ファイルtest.txtをバイナリと同じディレクトリに置くと常に機能します。そのため、プロジェクトの実行可能ファイルの名前a.outが の場合、次の 2 つの手順で動作するはずです。

  1. test.txt がと同じディレクトリにあることを確認してくださいa.out
  2. permissionstest.txt と を確認しwhether it existsます。
于 2011-04-25T13:48:53.177 に答える
1

この行を変更してみてください ifile.open("test.txt"); -> ifile.open("/test.txt");

ifstream ifile;
ifile.open("/test.txt");
if(!ifile.is_open()){
    cout << "The file could not be opened." << endl;
}
cin.get();
于 2011-04-25T13:46:44.873 に答える