作者goodword (佳話)
看板EE_DSnP
標題[問題] 關於 dofile 結束時 多出一個 mcalc>
時間Fri Apr 10 01:32:42 2009
如標題所述
若 file1 裡面是寫(只有二行):
mset 6
mvar x 7
則執行 mcalc> do file1 以後,出現如下:
mcalc> mset 6
mcalc> mvar x 7
x = 1
mcalc>
mcalc>
↑這是游標的位置
發生的原因是不是在 readCmd(*_dofile);
( 先假設這兒的 _dofile = new ifstream("file1"); )
_dofile 在送出二次字串後 _dofile 仍然不是 0
好像是要再多呼叫一次 才會使得 _dofile == 0
我所能想到的只有 eof :
送出 end of file 後才會變為 0 這只是我的猜測
是不是就是多了這一次 才使 mcalc> 多一次
原本也想要把多這一次消去
但後來看 modCalc.ref 也是一樣會多一次
所以是不是以 modCalc.ref 為準就好了
謝謝老師
---
寫到變成習慣了 剛剛按了 :wq
---
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.252.220
1F:推 ric2k1:我查一下, 但是這種差一個空行的的差別可以不用在意, 我們 04/10 01:53
2F:→ ric2k1:不會因此扣分的. 04/10 01:53
同樣地
這個情形 file1 內有 do file2 指令時
便會更嚴重,當執行完 do file2 這行時
會在結束時多出一個mcalc>
而pop出 file1 _dofile 所剩下的指令後
執行完又會在結束時多出一個mcalc>
如果 recursive 越多 畫面真的會變得怪怪的
還以為是有跑出空白行的指令
但 modCalc.ref 跑出的結果 就和我的 modCalc 一樣
所以應該是做到這兒就好了吧
還有 我想要問 : 因為 pop() 不回傳 stack 內所存的值
所以應該是要用 top() 然後用 pop() 吧?
第二個問題
bool pushDofile(); bool popDofile();
的回傳 應該是指 _dofileStack 滿了無法 push
或是 _dofileStack 沒有東西 pop 時
要 return false; 吧
謝謝老師
※ 編輯: goodword 來自: 140.112.252.220 (04/10 13:34)