簡體   English   中英

根據C ++中的數組長度寫入數據

[英]Writing data depending on length of array in 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]);
}

你有什么主意嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM