打破长码snprintf格式和参数

时间:2018-05-11 14:01:39

标签: c++

我希望在+ =?

的同一变量上使用拆分参数
    int QueryExecute = snprintf(UpdateQuery, sizeof(UpdateQuery),"One=%u, Two=%d,",One, Two);

我可以这样做吗?

int QueryExecute = snprintf(UpdateQuery, sizeof(UpdateQuery),"One=%u, Two=%d,");
int QueryExecute += One, Two;

Bassicaly我想将格式和参数拆分为不同的变量。

抱歉英语不好

1 个答案:

答案 0 :(得分:3)

  

我可以这样做吗?

不,你不能。但你可以分割线,C ++通常不关心空格:

int QueryExecute = snprintf(UpdateQuery, sizeof(UpdateQuery), "One=%u, Two=%d,",
                            One, Two);

如果这不是您所关注的行的宽度,并希望稍后提供以下参数(OneTwo),则可以使用std::bind执行此操作:

using namespace std::placeholders;
auto snprintf_later = std::bind(snprintf, UpdateQuery, sizeof(UpdateQuery), "One=%u, Two=%d,", _1, _2);
// ...
int QueryExecute = snprintf_later(One, Two);