2013-05-29 41 views
3

是否有可能允許通過一系列的價值觀,用TCLAP?我的目的是爲了避免矢量論點TCLAP

prog --opt 1 --opt 2 --opt 3 

,並有

prog --opt 1 2 3 

代替。

回答

0

我不這麼認爲,因爲在這種情況下,這是不可能辨別對應--opt參數,那些對應於未標記的說法。

但我可能是錯的,最好是寫一些代碼做你自己的測試,看看有什麼情況發生。我什麼也沒看見在doc有關情況

+0

但是,如果我想例如在命令行中輸入和輸出多個文件,如: ./prom -f file1.txt file2.txt file3.txt -o file4.txt file5.txt file6。 txt 我怎樣才能用TCLAP實現它? – Gravity90

+0

我不認爲這是可能的,因爲據我瞭解TCLAP邏輯,最後的參數是未標記的參數。 在您爲例'file4.txt'會站在爲未標記的參數'-o'和'file5.txt file6.txt'。 你會說«好最後一個,但有可能的是-f需要多個ARGS»。 似乎不是,因爲參數順序是可以互換的,而你的命令行等同於'/ prom -o file4.txt file5.txt file6.txt -f file1.txt file2.txt file3.txt',我們有同樣的問題與未標記的參數 – Quentin

+0

我可能是錯的,但我的建議:測試自己的行爲,如果你幸運的話,你想要的是默認行爲。否則,請檢查TCLAP軟件包源代碼中的所有測試,可能有一個適合您的問題 – Quentin

0

這可能不是當OP被要求的情況下,但現在有一個UnlabeledMultiArg是達到正是這一點:

// 
// UnlabeledMultiArg must be the LAST argument added! 
// 
TCLAP::UnlabeledMultiArg<std::string> multi("f", "file_names", false, "vector of file names", cmd); 
cmd.parse(argc, argv); 

std::vector<std::string> fileNames = multi.getValue(); 

完整文檔可在這裏找到:TCLAP Manual