看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.109.77
johnhmj:文字檔案應與原始碼檔案置於同一個資料夾內。 11/01 04:42
VictorTom:八成是檔案路徑相絕對位置的問題; 相對路徑時不同IDE環 11/01 10:09
VictorTom:境的預設位置不一定一樣, 你可以先試著把檔案放在一個絕 11/01 10:09
VictorTom:對位置: Ex: "C:\\xx.txt", 看是不是就開得到檔案. 11/01 10:10
VictorTom:然後VC用IDE直接run時, 印象中預設相對路徑的base好像是 11/01 10:11
VictorTom:在.vcproj的位置, 還是1F j大說的.cpp位置忘記了; 11/01 10:11
VictorTom:或者你可以把檔案copy進project folder裡的debug或 11/01 10:12
VictorTom:release資料夾裡和.exe擺在一起, 然後直接點兩下run看看 11/01 10:12
pigcat1315:位置不會是問題...因為dev中有跑過可以~ 11/01 11:04
james732:dev跟vc對於開檔預設位置的處理不一樣,建議寫成絕對路徑 11/01 11:06
pigcat1315:我實際上是用絕對可vs是還是讀不到QQ~dev就沒問題好怪 11/01 11:11
diabloevagto:你的\有用成兩條嗎? 11/01 11:41
pigcat1315:有阿....不然dev 怎可能能跑@@ 11/01 14:50
ah7675:有中文嗎?vs2005 2008 stl對中文路徑支援有點問題可估狗 11/01 15:05
pigcat1315:有中文@@ 11/01 17:35
pigcat1315:感恩...是中文路徑問題... 11/01 17:43