【发布时间】:2021-02-11 09:01:12
【问题描述】:
我用过
while (cond) { ...
printf("%d %d %d\n", i, j, k); ... }
我想要
while (cond) { ...
arr.append("%d %d %d\n", i, j, k); ... }
printf("%s", arr);
在 C 中做类似的最佳实践是什么?
【问题讨论】:
-
为什么不坚持第一个代码?
-
@ForceBru:更快。
-
使用
snprintf()存入缓冲区,最后一次打印缓冲区, -
@Rainning - 你怎么知道它更快?你还没有测量两者。第一种方法可能会在每次迭代时写入标准输出,但第二种方法将涉及内存分配(甚至可能重新分配)。我不会冒险猜测哪个更快。
-
第一个代码只涉及
printf()。建议的解决方案涉及snprintf()、malloc()或realloc(),有时也包括printf(),最后是printf()。我敢打赌第一个代码更快。