這是一個非常難的問題,但是 我正在編寫一個基於nix的工具,並希望根據vvv的傳遞數量來設置詳細標誌,我將在其中打印調試/信息語句我的程序。爲程序添加詳細程度
我的問題是我將如何去使用opargs,因爲optargs一次只能解析一個字符。
另外假設我知道我在冗長級別3,我的所有打印語句都必須處於if條件嗎?或者有一種巧妙的方式來使用預處理器來實現它?
此外,如果有人可以指向我的一些在線代碼這樣做,那將是非常棒的。
感謝
我搞清楚,以爲我會在這裏發表如果別人遇到這樣的未來:
基本上我的所有不同的冗長髮言,我定義使用預處理像一個特殊的打印:
#define dprintf \
if (verbosity == 1) printf
我再放入報表需要的代碼如
dprintf ("Verbosity is at level 1.");
我選擇ATGS看起來像這樣
case 'v':
verbosity++;
break;
您是否嘗試過使用字符串「-vvv」的選項解析機制?通常,如果存在這種能力,則將其處理爲「-v -v -v」。否則,您可以始終定義三個標誌「-v」,「-vv」和「-vvv」,並使用這些標誌設置調試級別。無論哪種方式,這都是一個小竅門。但你只做一次。 – HonkyTonk 2012-04-16 16:03:05
然後我可以使用預處理器來定義一個特殊的「打印」語句並使用它打印出詳細的選項? – Falcata 2012-04-16 16:04:14
爲什麼不只是'-v1','-v2','-v3'等? – 2012-04-16 16:07:04