作者descent (「雄辩是银,沉默是金」)
看板C_and_CPP
标题[问题] 把 vector 传给 printf
时间Sat Jul 30 21:59:03 2016
开发平台(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 语言传参数的方法。
--
若要人前显贵, 就要人後受罪。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.150.79
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1469887158.A.983.html
1F:推 soheadsome: 参数就直接是vector或initialize _list不就行了? 07/30 22:03
2F:→ descent: printf 可以接受 vector 吗? 07/30 22:20
3F:→ uranusjr: printf 当然不行啊 07/30 22:58
4F:推 yvb: 先做出一个 vector<const char *>, 再 vprintf...? 07/30 22:59
5F:→ uranusjr: 是说有什麽理由不能用 std::cout 吗? 07/30 23:00
也不是不行, 单纯不想 parse %d 这种 format string。
6F:→ yvb: 不过, fmt 拿 %d 去印 string 或 char* 的意思是?? 07/30 23:00
7F:推 AstralBrain: boost::format 07/30 23:34
8F:→ Caesar08: to uranusjr,因为效能? 07/31 01:12
9F:→ tjjh89017: \fmt string attack/ 07/31 03:30
※ 编辑: descent (180.217.200.90), 07/31/2016 20:42:03