请教一下为什么这段程序从文件中只能正确读取name,而不能读取height,weight

2020-09-24 社会 65阅读
#include "stdio.h"
typedef struct
{
    char name[100];
    double height;
    double weight;
}stu;
int main(void)
{
    FILE *fp;
    int i;
    stu std[6];
    //int number=6; //没有使用
    int ret;
    if ((fp = fopen("hw.dat", "r")) == NULL)  /* 打开文件 */
        printf("\n文件打开失败。\n");
    else
    {
        i=0;
        while(feof(fp) == 0) //还没有达到文件结尾,就一直读取数据
        {
           ret=fscanf(fp,"%s%lf%lf",std[i].name,&std[i].height,&std[i].weight);
           if(ret==3)
           {
               printf("%-10s %5.1f %5.1f\n",std[i].name,std[i].height,std[i].weight);
               i++;
           }
        }
    //原代码
    /*
    i=0;
    while ( fscanf(fp,"%s%lf%lf",std[i].name,&std[i].height,&std[i].weight)==3)
    {
    printf("%-10s %5.1f %5.1f\n",std[i]); i++;
    */
    }
    return 0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com