[问题] 把 vector 传给 printf

楼主: descent (“雄辩是银,沉默是金”)   2016-07-30 21:59:03
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
linux/g++
我有一个 vector<string> args
想做到以下功能
if (args.size() == 2)
printf(args[0].c_str(), args[1].c_str());
else if (args.size() == 3)
printf(args[0].c_str(), stoi(args[1]), args[2].c_str());
有一劳永逸的方法吗?
args[0] 会是 "%d \n" 之类的 format string
试了一些方法还是不行。
好像只能模拟 c 语言传参数的方法。
作者: soheadsome (师大狗鼻哥)   2016-07-30 22:03:00
参数就直接是vector或initialize _list不就行了?
楼主: descent (“雄辩是银,沉默是金”)   2016-07-30 22:20:00
printf 可以接受 vector 吗?
作者: uranusjr (←這人是超級笨蛋)   2016-07-30 22:58:00
printf 当然不行啊
作者: yvb   2016-07-30 22:59:00
先做出一个 vector<const char *>, 再 vprintf...?
作者: uranusjr (←這人是超級笨蛋)   2016-07-30 23:00:00
是说有什么理由不能用 std::cout 吗?
作者: yvb   2016-07-30 23:00:00
不过, fmt 拿 %d 去印 string 或 char* 的意思是??
作者: AstralBrain   2016-07-30 23:34:00
boost::format
作者: Caesar08 (Caesar)   2016-07-31 01:12:00
to uranusjr,因为效能?
作者: tjjh89017 (伊达政宗)   2016-07-31 03:30:00
\fmt string attack/

Links booklink

Contact Us: admin [ a t ] ucptt.com