作者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)