wsprintf在写入数据时,最大的缓冲区为1024个字节,试了很多次,每次都是在一定长度截断我想要输出的字符串,所以才发现了这个问题。
如下:
char demochar[1026] = "";
for (int i = 0; i < 1026; i++)
{
demochar[i] = '26';
}
wsprintf(demochar, "%s",demochar);//用wsprintf转换一次后查看长度
char ss[50];
int length = strlen(demochar);
sprintf(ss, "%d", length);
MessageBox(NULL,ss,"缓冲区大小 ",NULL);
最后输出结果为:
然后切换方法改用sprintf
char demochar[1026] = "";
for (int i = 0; i < 1026; i++)
{
demochar[i] = '26';
}
sprintf(demochar, "%s",demochar);//用sprintf转换一次后查看长度
char ss[50];
int length = strlen(demochar);
sprintf(ss, "%d", length);
MessageBox(NULL,ss,"缓冲区大小 ",NULL);
sprintf是突破了1024缓冲区的限制的
所以最后的解决方法是用sprintf代替wsprintf。