结尾why?whkmha

/********************************************************************
Exbc1104
从键盘输入一个字符串、一个整数和一个实数,将其写入文件f1.txt中,
再用读字符方式从此文本文件中逐个读出并显示在屏幕上。
(实数保留两位小数。)
【输入输出示例】
Hello!↙
12345↙
78.76↙
Hello!1234578.76
********************************************************************/
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *ph;
char a[100];
int i;
double j;
gets(a);
scanf("%d%lf",&i,&j);
if((ph=fopen("f1.txt","w"))==NULL)
{
printf("Cannot open");
exit(1);
}
fprintf(ph,"%s%d%.2lf",a,i,j);
fclose(ph);
if((ph=fopen("f1.txt","r"))==NULL)
{
printf("Cannot open");
exit(1);
}
fscanf(ph,"%s%d%.2lf",a,i,j);
puts(a);
printf("%d%.2lf",i,j);
return 0;
}

char ch;
    while(fscanf(ph,"%c",&ch)!=EOF){
        putchar(ch);
    }

#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *ph;
    char a[100];
    int i;
    double j;
    gets(a);
    scanf("%d%lf", &i, &j);
    if ((ph = fopen("f1.txt", "w")) == NULL)
    {
        printf("Cannot open");
        exit(1);
    }
    fprintf(ph, "%s %d %.2lf", a, i, j);
    fclose(ph);
    if ((ph = fopen("f1.txt", "r")) == NULL)
    {
        printf("Cannot open");
        exit(1);
    }
    fscanf(ph, "%s%d%.2lf", &a, &i, &j);
    puts(a);
    printf("%d\n%.2lf", i, j);
    return 0;
}