我有寫一個程式
執行時要輸入3個參數來表示一個數學運算式子
例如:
2 + 12
30 - 2
中間固定放加減乘除符號
而我的程式中有對參數數量進行判斷
if(args.length!=3)
Error();//呼叫我另外寫的錯誤處理程式
但是我測試卻發現一個問題
如果我用*號
這個判斷式就會呼叫Error();
使用其他符號就正常
後來我輸出了args.length
發現如果用+ - /
長度是3(正常結果)
但是用了*
長度卻會變6
這是為什麼啊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.49.172
推
10/10 08:39, , 1F
10/10 08:39, 1F
"是不是*被shell當成萬用字元了"
這部份我看不懂耶(對於推文都不知道該回還是該編輯>"<)
args我是有印出來啦
結果應該是"*"這個參數被整個資料夾裡的檔案名稱給取代了=.=
也就是有多少檔案就有多少參數取代*號的樣子
為何輸入"*"會有這樣的結果啊
有什麼方式可以避免這樣的影響嗎
※ 編輯: thinkniht 來自: 218.170.49.172 (10/10 08:59)
推
10/10 09:01, , 2F
10/10 09:01, 2F
用''包住的確有效...
雖然...這樣就和題目意思不合了=.=
算了...反正那個題目的範例答案也是錯的(會不會爛得誇張點啊XD)
不知道有沒有辦法正常的輸入*號但是可以正常執行的方法嗎
就是還是可以輸入像是"2 * 3" 或者"4 * 8"之類的參數
但是又不會影響到args長度
※ 編輯: thinkniht 來自: 218.170.49.172 (10/10 09:18)
推
10/10 09:19, , 3F
10/10 09:19, 3F
推
10/10 13:10, , 4F
10/10 13:10, 4F
→
10/10 13:11, , 5F
10/10 13:11, 5F
推
10/10 14:06, , 6F
10/10 14:06, 6F
推
10/10 18:14, , 7F
10/10 18:14, 7F
→
10/10 18:15, , 8F
10/10 18:15, 8F
討論串 (同標題文章)