[問題] 把 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