我这样显示我的缓冲区:
void WINAPI MyUCPackets(char* unpkt, int packetlen, int iR, int arg)
cout << "[" << packetlen << "] ";
for ( int i = 0; i < packetlen; i++ ) {
printf( "%02x ", unsigned char (unpkt[i]) );
}
printf( "\n" );
现在我需要检查缓冲区的一部分是否包含特定值,例如:
if(unpkt[1] == 0xfb && unpkt[2] == 0x05 && unpkt[3]== 0x20)
{
unpkt = dcpkt;
}
打印输出:
6C FB 05 20 00
我需要检查是否使用了除了第一个字节之外的确切缓冲区,因为它是随机的。
但它不起作用。条件没有得到执行,我确定 unpkt1 是 0xfb 而 unpkt2 是 05 因为缓冲区的打印显示了该值。
我尝试使用sprintf
将缓冲区存储为十六进制,但看起来很乱。还有其他想法吗?
sprintf(buf2, "%02X", unpkt[1]);