void char() {
char buff[50];
int l;
int i = 0;
i = sprintf(buff,a,b,c);
for(i=0,i<=l,l++)
serial.println(buff);
}
我想要一个像#123#234#一样打印的缓冲区
a=123
b=234
这样做正确吗?我试过了,但没有得到任何输出。可能是愚蠢的错误。
编辑:
#include <stdio.h>
void abc() {
int a = 123;
int b = 234;
char buff[50];
int l;
int i = 0;
l = sprintf(buff,"#%d#%d#",a,b);
for(i=0;i<=l;l++);
printf("%s", buff);
//return buff;
//serial.println(buff);
}
int main() {
//char bhg = abc();
//printf("&d", bhg);
abc();
}
我试过这个。工作正常但需要时间来提供输出。我能让它快点吗?可能它正在尝试遍历该 char[50] 以进行分配。
最佳答案
这不是您使用 sprintf 的方式。您需要使用格式字符串。喜欢:
l = sprintf(buff,"#%d#%d#",a,b);
此外,您在代码中将返回的长度分配给 i,而不是 l。
关于c++ - 在缓冲区中推送多个变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385183/