首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个C++检测中文输入的有关问题

2012-11-05 
一个C++检测中文输入的问题我的程序是这样的:(检测中文字符的个数)int chinese_number0,char_number0in

一个C++检测中文输入的问题
我的程序是这样的:(检测中文字符的个数)
int chinese_number=0,char_number=0;
instream.get(temp_char);
while(temp_char!='\n')
{
if(temp_char&0X80==0X80) 
{
chinese_number++;
instream.get(temp_char);
}
else char_number++;
instream.get(temp_char);
}

运行之后出现了问题,但是如果我把if语句改成 if(temp_char&0X80)就运行正确了,这个是个什么道理,求大神解释

[解决办法]
这是操作符运算优先级的问题。

摘录:
优先级
……
8==,!=Comparison equal-to Comparison not-equal-to left to right
9& Bitwise AND left to right
……

所以,你的代码实际上变成了 if (temp_char & 0x01)

加个括号就OK了
if ((temp_char&0x80)==0x80)

热点排行