看板 EE_DSnP 關於我們 聯絡資訊
此問題跟作業要求無關 只是我發現 如果在實際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
ric2k1:不同的 terminal 會有些不同,請以 spec (PDF) 以及 ref 10/22 21:23
ric2k1:prog 為準。 10/22 21:23
ric2k1:你的做法的確可以做得跟你的 terminal 一樣,但為了我們 10/22 21:24
ric2k1:批改容易,請盡量跟 ref prog 比較就好! 10/22 21:26
jackervator:恩 多謝教授 10/22 21:43
e124553423:去年我好像也問過相同的問題XD 10/23 07:18
gamerred:這作法缺點是你要用兩倍的記憶體 10/23 18:28
gamerred:其實只要按上下的時候比較暫存跟歷史裡的一不一樣 10/23 18:29
gamerred:不一樣就去更新就可以了 架構都不用變 加兩行code就好 10/23 18:30
yan12125:其實我比較不喜歡ubuntu的寫法耶,刪錯不能變回來 10/23 23:09