【发布时间】:2016-01-01 08:29:34
【问题描述】:
基于wsprintf 的文档,它将输出缓冲区限制为1024 字节。如果我需要存储的文本大于 1024 字节怎么办?如何扩展此限制,或者我可以使用什么替代方法而不需要我使用 lstrcat 或类似的?
char output[4096];
wsprintf(output, "%s", input); // assume input is a piece of text > 1024 characters
printf(output); // only prints the first 1024 characters
如何将输入中的所有字符复制到输出中,超过 wsprintf 的 1024 字节限制?
【问题讨论】:
-
你能发布你的代码吗?
-
你能提供一个你试图开始工作的实际代码 sn-p 吗?拥有具体细节将更容易提供解决方案或变通方法。
-
使用 StringCchPrintf 或 StringCchPrintfEx ...其限制为 2147483647
-
嗯,你是这里唯一一个生气的人……我只是陈述事实。同样,如果您不展示您的实际要求,我们将无法帮助您。格式化打印与“尽可能少的计算”不一致。
-
@chqrlie 他从他的问题中删除了那个。下面他写的是
wsprintf(output, "%d + %d = %d", 1, 2, 3),所以他似乎在寻找更复杂的东西。当然,如果他不清楚自己想要优化什么,就没有办法引导他达到最优。