※ 引述《ric2k1 (Ric)》之銘言:
: ※ 引述《timrau (unknown)》之銘言:
: : 在sample program裡
: : MCOMPare
: : 碰到超過兩個輸入參數,就只輸出error message而不比較
: 這是正確的...
: : MADD
: : MSUBtract
: : MMULTply
: : 碰到太多輸入參數時,都在輸出error message之後,
: : 照樣把第二個參數和第三個參數運算並存入第一個參數,
: : 所以這個要照做嗎?
: 啊 bug... 應該要和 MCOMPare 一樣, 只輸出error message而不計算
: : 又,在sample program
: : mcalc> madd a 5
: : Missing option!!
: Another bug... 我承認我的確沒做什麼驗證 (所以驗證很重要 XD)
: : 程式記憶體區段錯誤
: : 這個要怎麼實做?(怎樣故意讓它出現segment fault...)
: 就 cout << *(0); 吧...
: 沒有啦, 開玩笑的, 我晚上在找時間將程式修一下...
修好了, copy 過來後忘記檢查和 return... 請重新測試 modCalc
另外, reference code 中 "cmdParser.cpp" 有一個 typo, 請修正 ---
370 bool
371 CmdExec::lexOptions
372 (const string& option, vector<string>& tokens, size_t nOpts) const
373 {
......
381 if (tokens.size() > nOpts) {
382 errorOption(CMD_OPT_EXTRA, tokens[2]);
383 return false;
384 }
385 }
382 行應改為 ---
381 if (tokens.size() > nOpts) {
382 errorOption(CMD_OPT_EXTRA, tokens[nOpts]);
383 return false;
384 }
請修正或重新 download "hw3.tgz"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.131.138