istream でファイルを開こうとすると、開かない (is_open() が false を返す)。ファイルにアクセスするためにファイルを配置する必要がある特定のディレクトリはありますか (プロジェクトの出力ディレクトリにあります)?
ifstream ifile;
ifile.open("test.txt");
if(!ifile.is_open()){
cout << "The file could not be opened." << endl;
}
cin.get();
プログラムの「作業ディレクトリ」にある必要があります。これは、プログラムを実行するときのディレクトリ、または Visual Studio などの IDE を使用している場合はプロジェクトのディレクトリ (Release および/または Debug ビルド フォルダーも含むディレクトリ) です。
ファイルへの正しいパスを指定する必要があります。プロジェクトの構造はわかりませんが、次のようなものです。
ifile.open("output/test.txt");
私は Linux マシンで作業しており、ファイルtest.txt
をバイナリと同じディレクトリに置くと常に機能します。そのため、プロジェクトの実行可能ファイルの名前a.out
が の場合、次の 2 つの手順で動作するはずです。
test.tx
t がと同じディレクトリにあることを確認してくださいa.out
permissions
test.txt と を確認しwhether it exists
ます。この行を変更してみてください 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();