作者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/m.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