C++ 如何读取数组的元素?

C++ 如何读取数组的元素?,c++,arrays,serial-port,C++,Arrays,Serial Port,我使用以下命令从串行端口获取数据: char buf [256]; char a [256]; memset (&buf, '\0', sizeof buf); /* *** READ *** */ if (n < 0) { std::cout << "Error reading: " << strerror(errno) << std::endl; } /* Print what I read... */ std::cout <

我使用以下命令从串行端口获取数据:

char buf [256];
char a [256];
memset (&buf, '\0', sizeof buf);

/* *** READ *** */
if (n < 0)
{
    std::cout << "Error reading: " << strerror(errno) << std::endl;
}

/* Print what I read... */
std::cout << "" << buf;
int sa=0;
printf("Gelen Data : \n");

for(sa=0;sa<15;sa++){
    printf("::%0.2X",buf[sa]);
}
for(sa=0;sa<15;sa++){
        printf("::%0.2X",buf[sa]);
}
我可以使用以下命令查看数据:

char buf [256];
char a [256];
memset (&buf, '\0', sizeof buf);

/* *** READ *** */
if (n < 0)
{
    std::cout << "Error reading: " << strerror(errno) << std::endl;
}

/* Print what I read... */
std::cout << "" << buf;
int sa=0;
printf("Gelen Data : \n");

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

有人能帮我吗?

你可能想用十六进制格式比较一下

if( buf[2]==0x02){
      cout<<"Equality"<<endl;
}
if(buf[2]==0x02){

cout还可以使用带有十六进制值的switch语句,这可以提高性能,或者更可能——如果您有很多值要处理,那么可以使代码更具可读性。 即


为什么你不能使用你发布的示例代码?(我相信你误用了“等式”这个词,这不是一个等式,并且C++中没有等式)。将程序的文本复制到您的问题中。请不要截图或文本图片。我已将截图转换为代码块并修改了一些措辞。此外,问题已被标记,无需将其添加到标题中。@MuhammedYıldız,如果您认为答案解决了您的问题,请接受答案并投票。I upvo泰德,但我想在我15岁以后会录下来
switch (buf[2]) {
  case 0x02:
    doSomething(); break;
  case 0x04: 
    soSomethingelse(); break;
}