c++ - 在缓冲区中推送多个变量值

标签 c++ arduino printf

    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/

相关文章:

c++ - 为什么指针指向它指向的地方?

java - Arduino MPU6050 传感器无法使用 Arduino 网站上的代码

c++ - 没有除了风格和性能的练习?

c++ - 字符串文字和模板函数的多个版本

c++ - 无法将 int 应用于 partial_apply 的结果

c++ - 我的程序是在调用 'parsePacket()' 后继续还是等到它接收到数据?

c++ - 如何廉价地将 char 数组和数字合并在一起?

c - 在 C printf 格式化输出方面需要帮助

python - Python 中的逐字终端打印速度慢?

bash - 如何在 bash 中打印一些文本并用空格填充到一定宽度?