作者jane050177 (喵哩汪!!)
看板EE_DSnP
標題[問題] do dofile 的時候要輸入路徑才能開檔
時間Mon Nov 15 18:28:08 2010
老師同學大家好 :)
我發現我在測試do command的時候
如果直接輸入 do do1的時候 程式就會當掉QQ
但是如果輸入file的路徑就會沒問題
也就是 "do ./dofiles/do1" 是OK的
所以請問到時候批改的時候
是會把所有的dofile放到跟執行檔同一層嗎?
還是我需要再修改讀取路徑的方法?
謝謝老師跟大家 :D
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.94.109
1F:推 ric2k1:也許你要檢查一下 dofile 的開啟是否成功? 11/15 20:45
2F:→ jane050177:噢噢我發現了 原來要加錯誤的警告提醒!! 11/15 21:13
3F:→ jane050177:那請問批改的時候會把所有的dofile放在同一層嗎? 11/15 21:14
4F:→ jane050177:還是我需要去寫檔案的讀取路徑? 謝謝老師QQ! 11/15 21:14
5F:推 aldreamp:可是我判斷沒開成功時 呼叫errorOption 卻不能呼叫QQ?? 11/15 21:53
6F:推 ric2k1:dofile 應該可以不用放在同一層, 反正用 ifstream 的 11/15 22:13
7F:→ ric2k1:constructor 或是 open() 去開檔的時候他會根據你所給的 11/15 22:14
8F:→ ric2k1:路徑+檔名尋找。但以你原來說的如果 do1 是放在 dofiles 11/15 22:15
9F:→ ric2k1:目錄底下,你直接下 do do1 應該是會找不到而 return 開檔 11/15 22:16
10F:→ ric2k1:錯誤, 你程式中要去判斷這樣的錯誤, 免得 _dofile 是 11/15 22:17
11F:→ ric2k1:garbage 而你仍去繼續執行 (就 crash 了...) 11/15 22:17
12F:→ ric2k1:To aldreamp: 不能呼叫的意思是 compile error 嗎? 11/15 22:18
13F:推 aldreamp:是的 因為我想呼叫CmdExec::errorOption() 可是他說 11/16 12:17
14F:→ aldreamp:cannot call member function without object 於是我就 11/16 12:20
15F:→ aldreamp:CmdExec a; 用a去呼叫 然後他又說errorOption是protected 11/16 12:22
16F:→ aldreamp:然後我就發現根本不需要呼叫 只要判斷dofile->fail()就好 11/16 12:25
17F:→ jane050177:懂了>\\\< 謝謝老師! 11/16 16:55