看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
soheadsome: 參數就直接是vector或initialize _list不就行了? 07/30 22:03
descent: printf 可以接受 vector 嗎? 07/30 22:20
uranusjr: printf 當然不行啊 07/30 22:58
yvb: 先做出一個 vector<const char *>, 再 vprintf...? 07/30 22:59
uranusjr: 是說有什麼理由不能用 std::cout 嗎? 07/30 23:00
也不是不行, 單純不想 parse %d 這種 format string。
yvb: 不過, fmt 拿 %d 去印 string 或 char* 的意思是?? 07/30 23:00
AstralBrain: boost::format 07/30 23:34
Caesar08: to uranusjr,因為效能? 07/31 01:12
tjjh89017: \fmt string attack/ 07/31 03:30
※ 編輯: descent (180.217.200.90), 07/31/2016 20:42:03