[問題] 把 vector 傳給 printf

看板C_and_CPP作者 (「雄辯是銀,沉默是金」)時間9年前發表 (2016/07/30 13:59), 9年前編輯推噓3(306)
留言9則, 7人參與, 最新討論串1/2 (看更多)
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1469887158.A.983.html

07/30 22:03, , 1F
參數就直接是vector或initialize _list不就行了?
07/30 22:03, 1F

07/30 22:20, , 2F
printf 可以接受 vector 嗎?
07/30 22:20, 2F

07/30 22:58, , 3F
printf 當然不行啊
07/30 22:58, 3F

07/30 22:59, , 4F
先做出一個 vector<const char *>, 再 vprintf...?
07/30 22:59, 4F

07/30 23:00, , 5F
是說有什麼理由不能用 std::cout 嗎?
07/30 23:00, 5F
也不是不行, 單純不想 parse %d 這種 format string。

07/30 23:00, , 6F
不過, fmt 拿 %d 去印 string 或 char* 的意思是??
07/30 23:00, 6F

07/30 23:34, , 7F
boost::format
07/30 23:34, 7F

07/31 01:12, , 8F
to uranusjr,因為效能?
07/31 01:12, 8F

07/31 03:30, , 9F
\fmt string attack/
07/31 03:30, 9F
※ 編輯: descent (180.217.200.90), 07/31/2016 20:42:03
文章代碼(AID): #1NdBAsc3 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1NdBAsc3 (C_and_CPP)