fgetc()返回值是int而不是char
其实是个很简单的常识,居然搞了我半个小时……
fgetc()的返回值是int,因为这个值除了返回拿到的字符之外,还兼作错误标志。由于fgetc()允许文件中包含任意内容,所以只好增大返回值的宽度来表达。
因此,很显然,(ch = (char)fgetc(fp)) == EOF是不对的。
选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
其实是个很简单的常识,居然搞了我半个小时……
fgetc()的返回值是int,因为这个值除了返回拿到的字符之外,还兼作错误标志。由于fgetc()允许文件中包含任意内容,所以只好增大返回值的宽度来表达。
因此,很显然,(ch = (char)fgetc(fp)) == EOF是不对的。