改成:while((ch=fgetc(fp)) != EOF)printf("%c\n",ch);
你while中的fgetc没有指定参数fp,相当于fgetc(NULL),那么自然返回的ch就是EOF了,啥也没干
文件中如果有中文的话,中文占两个字符,fgetc一次只读取一个字节,所以读出来的是乱码。