下面是我的代码。我想提高效率。
格式说明符太多了,它们是相同的。
并且,数组也包含类似的目标。
我的问题是...
谢谢你的帮助。
char * msg = sprintf("%d %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf",
intnum, doublenum[0], doublenum[1],
doublenum[2], doublenum[3], doublenum[4],
doublenum[5], doublenum[6], doublenum[7],
doublenum[8], doublenum[9], doublenum[10]);
最佳答案
您首先需要提供足够大的缓冲区来写入。 sprintf
的签名是
int sprintf(char *str, const char *format, ...);
它返回写入缓冲区
str
的字符数。您可以捕获该值以通过偏移到目前为止已写入的字符数来将指针调整为
str
。没有任何错误检查和缓冲区溢出保护,它可能看起来像这样:
char msg[BUFSZ];
int msgl = sprintf(msg, "%d", integer);
for(int i = 0; i < 10; ++i)
{
msgl += sprintf(msg + msgl, " %lf", ds[i]);
}
对于一些足够大的
BUFSZ
。