这是一个非常难的问题,但是 我正在编写一个基于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