作者jackervator (jokerlin)
看板EE_DSnP
标题[问题] Terminal的temp Cmd Store问题
时间Mon Oct 22 21:13:48 2012
此问题跟作业要求无关
只是我发现
如果在实际terminal的状况下(我是ubuntu)
他不仅仅只存最新type in(尚未点enter)
若是你按上按到之前已经输入过的字串
你对他做修改
他一样也是会暂存 直到你输入enter为止
举例来说好了
若是现在已经储存{'1' '2' '3' '4' '5' '6'}
我现在输入'7' 按上两次 他就显示 '5'
此时我把'5'改成'5a'
我在按一次下 在按一次上 他一样会是显示 '5a'
所以我把上按到底 一个一个按下
他会显示'1' '2' '3' '4' '5a' '6' '7'
但当我按两次上回'5a' 按enter後
_history就会变成{'1' '2' '3' '4' '5' '6' '5a'}
这点跟教授要求的不太一样
如果依题意的话,应该是要我按两次上回'5' 把'5'修改成'5a'後
按一对上下 他又会变回'5'
如果现在真的要跟terminal完全一样的话
我的作法是把_history开成 vector< pair<string , string>>
前面的vector of string是真正的_history
後面的是显示在萤幕上的,同时也是暂存的string
这样就可以另外存一个暂存档 而且也不需要_tempCmdStored了
因为若是vector.second 有值,而first没有值的话 我就知道是暂存档了
所以我直接比较second.size() 以及first.size()就可以了
不知道是不是只有我的terminal是这样
想请问教授说HW2自制的terminal(?)跟实际的terminal的差别
还有顺便问看看有没有更好的做法@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.246.186
1F:推 ric2k1:不同的 terminal 会有些不同,请以 spec (PDF) 以及 ref 10/22 21:23
2F:→ ric2k1:prog 为准。 10/22 21:23
3F:→ ric2k1:你的做法的确可以做得跟你的 terminal 一样,但为了我们 10/22 21:24
4F:→ ric2k1:批改容易,请尽量跟 ref prog 比较就好! 10/22 21:26
5F:→ jackervator:恩 多谢教授 10/22 21:43
6F:推 e124553423:去年我好像也问过相同的问题XD 10/23 07:18
7F:推 gamerred:这作法缺点是你要用两倍的记忆体 10/23 18:28
8F:→ gamerred:其实只要按上下的时候比较暂存跟历史里的一不一样 10/23 18:29
9F:→ gamerred:不一样就去更新就可以了 架构都不用变 加两行code就好 10/23 18:30
10F:→ yan12125:其实我比较不喜欢ubuntu的写法耶,删错不能变回来 10/23 23:09