读书人

字符保存EOF,该如何处理

发布时间: 2012-05-27 05:42:30 作者: rapoo

字符保存EOF
我们知道EOF(-1)是一个整数,但是如果我们用有符号字符型如ch保存他,这样ch中将保存0xff,之后我们有以下判断:
if(EOF == ch) //ch为有符号数,转换成整数时进行符号扩展编程0xffffffff,这样这个判断也能成立。我想问的是用“有符号”字符型(不是无符号)保存EOF有什么潜在危险??

[解决办法]
EOF是由系统库来定义的,可能定义为-1,也有可能不是呢。潜在危险不清楚,我觉得如果你用0xff表示的话就不具有可移植性了。
[解决办法]
危险就是当你真的从文件里面读出一个字节0xff的时候你会误以为EOF了。

读书人网 >C++

热点推荐