我有一个多次调用OutputBuffer的函数:
void display(void)
{
OutputBuffer("This is String One");
sprintf(PrintBuffer, "String Two %s",modeStr);
OutputBuffer(PrintBuffer);
sprintf(PrintBuffer,"AddString = %s",modeStr2);
OutputBuffer(PrintBuffer);
}
在OutputBuffer中,我希望将字符串存储在全局变量char TestBuffer [1000]中,然后在显示器上显示它们:
void OutPutBuffer(char *Buffer)
{
int var = strlen(Buffer);
sprintf(TestBuffer, Buffer);
}
我只得到每个String的长度,但只得到最后一个字符串(AddString ...)。有任何建议如何解决这个问题?
答案 0 :(得分:0)
您需要一个额外的全局变量来保存TestBuffer上达到的当前位置。
答案 1 :(得分:0)
使用strcat
void OutputBuffer(char *Buffer)
{
int var = strlen(Buffer);
if(var+strlen(TestBuffer)>=1000)
return;
strcat(TestBuffer,Buffer);
}
使用snprintf
void OutPutBuffer(char *Buffer)
{
int var = strlen(Buffer);
if(var+strlen(TestBuffer)>=1000)
return;
snprintf(TestBuffer+strlen(TestBuffer),var,"%s",Buffer);
}