下面是我的代码。我想提高效率。
格式说明符太多了,它们是相同的。
并且,数组也包含类似的目标。

我的问题是...

  • 如何减少重复格式说明符的数量?
  • 如何为目标(double [i])使用通用表达式?

  • 谢谢你的帮助。
    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

    08-16 10:25