我正在这样使用sprintf
sprintf(cTmpBuf, "%0*lu",targetPrecision,ulFraction);
在这之前我用的是这个
sprintf(cTmpBuf, "%06lu", ulFraction);
现在我知道了,选择targetPrecision的值并将其设置为*但是我想知道它背后发生的内部事情
最佳答案
如果你想知道它是如何实现的,那就没有魔法;它只是使用<stdarg.h>
处理的另一个参数。很粗略地说,大概是:
prec = -1;
⋮
if (*cp == '*') {
prec = va_arg(ap, int);
cp++;
}
关于c++ - sprintf的内部工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10930685/