如何正确比较字符和0x85

How to compare char with 0x85 correctly?

本文关键字:0x85 字符 比较 何正确      更新时间:2023-10-16

iam 用 C++ 编程。我有来自 winsock recv 的缓冲区的字符*输出。我这样比较有点问题。我有查尔·

if(a == 0x85)

不起作用,但是

if(a == -123)

相同的(来自Debbuger)工作..对不起我的英语。

尝试

if ( a == (char)0x85 )

您的代码不起作用,因为a将被转换为 int ,因为在==的右侧有一个类型 int 的表达式。如果a确实是(char)0x85的,并且charsigned char的(可能不是所有平台上的情况),那么a是负数,因此(int)a是负数,因此不等于0x85

将右侧变成char型的表情,您将度过快乐的一天! ;)