在c++中根据数组的长度写入数据

Writing data depending on length of array in C++

本文关键字:数据 数组 c++      更新时间:2023-10-16

我使用下面的代码从串行端口获取数据:

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]);
}

你知道吗?

根据buf[4]的值修改您的LENGTH

int length = buf[4] + 6;

然后是for循环

我会说:

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]);
}