我想在C++中打開一個文件。打開文件C++錯誤
我的文件位於/home/me/myproject/mydir/myfile.txt
我在該文件存在,並且不爲空,我的文件系統檢查。
我GETCWD(),我在/ home/ME/myproject的是檢查/
因此,我試圖打開它:
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++代碼沒有嚴格的關係。
(注:我在這裏回答,因爲顯然我不能回答我自己的問題)。
嘗試使用絕對路徑'/ home/me/myproject/mydir/myfile.txt'來打開文件。 – Isaac 2012-04-23 11:50:36
我認爲這可行,但一定要檢查您正在運行的進程已讀取該文件的文件系統權限。 http://en.wikipedia.org/wiki/Filesystem_permissions#Traditional_Unix_permissions – HostileFork 2012-04-23 11:52:20
當操作失敗時,打印出'errno'的值,或者['strerror'](http://linux.die.net/man/ 3/strerror)得到一個可讀的字符串。 – 2012-04-23 11:53:11