把文件中的英文单词,忽略空格及符号分别单独输出

#include <stdio.h>

int main(){

 FILE *fp;

 char c;

 fp=fopen("Infile.txt","r");

 if(fp!=NULL){

  while(!feof(fp)){

   while((c=fgetc(fp)!=EOF)&&c!=' '&&c!=','&&c!='.'&&c!=';'){

    printf("%c",c);

   }

   printf("\n");

  }

 }  

 else{

  printf("fall to open!\n");

  return 0;

 }}

 

英文文件内容:The best person in the world is me!I am so phat!

为什么该程序并不能输出文件对应的正确结果。而是说出了一串笑脸符号。

会不会是编码格式的问题