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