看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 工作站 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 想請問為何c++ argv參數是否有什麼限制呢? 這是我餵給argv的參數: ./execute.sh -r -i _____ -o rank-list -m model 本來_____都用query_test.xml(query後面接底線)來測,都正常跑 但是測某一個擋叫做 query-test.xml(query後面接-)來測時 就跑出了以下訊息: terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::erase: __pos (which ....... ./execute.sh: line 1: 4462 已經終止 ./test_3_xml $1 $2 $3 $4 $5 ... 然後程式就終止了@@ 餵入的資料(Input): ./execute.sh -r -i query_test.xml -o rank-list -m model => 正常 ./execute.sh -r -i query-test.xml -o rank-list -m model => 意外終止 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::erase: __pos (which ....... 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 不太熟悉工作站的環境,希望高手幫忙一下,感恩 如果有違反版規在自刪 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.174.2 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1428771420.A.056.html
x000032001: 程式沒寫好吧 檔名不要用- 04/12 01:02
LPH66: 這跟檔名有沒有 - 無關吧, 要看原 PO 程式怎麼寫的 04/12 01:17
gn123: 對呀 印象中應該是沒差@@ 而且也確實有讀到擋,只是就停了QQ 04/12 01:37
LPH66: 是說, 不知道你為什麼要多一層 shell script, 不過要傳所有 04/12 02:39
LPH66: 參數進去用 "$@" 應該會好一點, 也不用費力寫一堆 $1$2$3 04/12 02:39
LPH66: "$@" 的引號要加, 否則有些參數會傳錯 04/12 02:41
Donze: 檢查看看程式有沒有把-當成判斷的依據 04/12 13:08
Push5F: "中-出" vs 中-出 04/15 07:17