为什么我把数据存到数组,输出却失败

int main() {

  FILE *fp=fopen("classes.dex", "r+");

    int ch;
  char * key=new char[100] ;


  char  cha;
    if ( fp == NULL) {
        perror("Open file classes.dex\n");
        printf("errno: %d\n", errno);
        exit(1);
        }
    int i=0;
        while ( (ch = fgetc(fp)) != EOF ){
                            cha+=ch;
                            if(sizeof(cha)%20==0){

                            }else{
                                key[i]=ch;
                                printf("%c \n",key[i]);
                                i++;
                            }

            }

            fclose(fp);
            return 0;
        }为什么输出得不到结果,瞬间就结束了呢...求指教

在 return 0; 前增加类似于 getch() 之类的函数