【補充說明】:可以利用一下 Win32 的 GetLastError 函式,來找出問題來源。
// 函式 GetLastError 的標頭檔
#include <Windows.h>
…
// 錯誤代碼
DWORD ferror = 0;
…
// 放在出錯的下方
// 取得錯誤代碼
ferror = GetLastError();
// 顯示錯誤代碼
// 假如顯示是 2(0x2) 就是找不到指定的文字檔案
cout << "Error code = " << ferror << endl;
【代碼連結】:http://codepad.org/cGufiAmb
【參考資料】:
*. http://ppt.cc/Cp~a (MSDN GetLastError)
*. http://ppt.cc/GDYG (MSDN 錯誤代碼表)
※ 引述《pigcat1315 (還是朋友?)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: vs2008
: 問題(Question):
: 我用這個 path.c_str() 轉成char 在dev中明明可以讀檔
: 在vs2008中可以編譯過 但卻會讀不到檔案,因為會印出open file fail
: 但...我在這之前用cout<< path.c_str() 是有檔名阿
: 預期的正確結果(Expected Output):
: 會跳到讀檔那
: 錯誤結果(Wrong Output):
: 開不起檔案
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: string path="xx.txt";
: fstream file;
: file.open(path.c_str(),ios::in|ios::binary );
: int i=0;
: if(file.is_open() == 0) /* 假如開檔失敗 */
: {
: cout<<"open file fail \n";
: }
: while (!file.eof())
: {
: file >> trainingimagenumber_buf[i];
: i++;
: }
: file.close();
: 補充說明(Supplement):
--
*. 個人網頁:http://steamcommunity.com/id/Big_John-tw
*. RaidCall:肥羊小窩《美國陸軍》(4406051)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.20.120.62