根据C ++中的数组长度写入数据

时间:2016-09-30 10:32:38

标签: c++

我使用以下代码从串口获取数据:

for (sa = 0; sa < 15; sa++) {
   printf("::%0.2X", buf[sa]);
}

我采用不同长度的数据,如下所示。 buf[4]定义数组的长度。例如,如果buf[4] == 07数组中有13个元素;如果buf[4] == 09数组中有15个元素。

数据1:::02::03::98::00::07::20::16::09::30::13::15::23::B6::

数据2:::02::03::99::00::09::20::16::09::30::13::15::25::23::00::9C

我想编写类似上面的代码,我的整数LENGTH会因buf[]数组的长度而异。

for (sa = 0; sa < LENGTH; sa++) {
   printf("::%0.2X", buf[sa]);
}

你有什么想法吗?

2 个答案:

答案 0 :(得分:1)

根据LENGTH

的值修改您的buf[4]
int length = buf[4] + 6;

然后是你已经拥有的for循环。

答案 1 :(得分:0)

我会说:

for(sa=0;sa<buf[4]+5;sa++){
    printf("::%0.2X",buf[sa]);
}

但是,如果您一次只获得一个元素,则可以改为:

for(sa=0;sa<4;sa++){
    printf("::%0.2X",buf[sa]);
}
int length = buf[4] + 1;
printf("::%0.2X",length); //prints buf[4]
for(sa=0;sa<length;sa++){
    printf("::%0.2X",buf[sa+5]);
}