putchar()里面放入int的时候,输出的是这个int值在ascii码表里面对应的值~~
你给的是负数,当然是乱码了
这个是ascii表 参考一下
http://baike.baidu.com/view/492542.htm?fromId=15482
当然是乱码啊,-10到-2都不是可打印字符,你通过putchar打印出来,肯定显示的是乱码撒
putchar会把c强制类型转化char,通过ascii对映的表输出的,负数在ascii没有对映的数据
c是int型的,不能用putchar()输出。用printf();试试
eof不可能是-1,因为它的值在0~255范围内!