sprintf实现命令行的可变参数?该如何解决
sprintf实现命令行的可变参数?
要组成一个字符串比如:
./hello -dA -dB -dC
A B C是可选可不选的选项,也就是说可有可无。
程序中我用了3个bool变量 A B C,来代替用户有没有用,比如:如果A为false那么就没有-dA这个选项。
sprintf(DCmd, "./hello -d%s -d%s -d%s ", \
A ? "A" : NULL,
B ? "B" : NULL,
C ? "C" : NULL);
可是结果不是我想要的。应该怎么做才能够实现呢?
------解决方案--------------------
用strcat拼字符串吧
------解决方案--------------------
"./hello %s %s %s"
A ? "-dA" : ""
B ? "-dB" : ""
怎么样.
要组成一个字符串比如:
./hello -dA -dB -dC
A B C是可选可不选的选项,也就是说可有可无。
程序中我用了3个bool变量 A B C,来代替用户有没有用,比如:如果A为false那么就没有-dA这个选项。
sprintf(DCmd, "./hello -d%s -d%s -d%s ", \
A ? "A" : NULL,
B ? "B" : NULL,
C ? "C" : NULL);
可是结果不是我想要的。应该怎么做才能够实现呢?
------解决方案--------------------
用strcat拼字符串吧
------解决方案--------------------
"./hello %s %s %s"
A ? "-dA" : ""
B ? "-dB" : ""
怎么样.