C++ でファイルを開こうとしています。
私のファイルは /home/me/myproject/mydir/myfile.txt にあります
ファイルが存在し、空でないことをファイル システムで確認しました。
/home/me/myproject/ にいることを getcwd() で確認しました
したがって、私はそれを開こうとしました:
string myfilename;
ifstream myfile;
myfilename = "./mydir∕myfile.txt";
myfile.open(myfilename.c_str(), ios::in);
if (myfile.fail()) {
// I always end up here.
}
myfile.fail() が常に true を返す理由を本当に理解できません。なぜそうなのか、またはなぜそのように振る舞うかを理解するために実行できるデバッグテストはありますか?
みんなのおかげで、何が悪いのかわかりました。「/」(スラッシュ)と「/」(区切り文字)が違うと思われるリモコンソフトを使っています。まだまだ気になる点はあるのですが、別の記事で質問させていただきます。errno と strerror() は、何が問題なのかを理解するのに役立ちました。これらのエラーは見つけるのが難しく、申し訳ありませんが、厳密には C++ コードに関連していませんでした。
(注:どうやら自分の質問に答えることができないので、ここで答えました)。