使用sscanf函数为结构体输入数据时出错

使用sscanf函数为结构体输入数据时出错
#include<stdio.h>
#include<string.h>
int main
{struct student{
        char name[50];
        int id;
        float score;
}stu1,stu={"lihua", 52, 95};
sscanf("zhangsan 1 80","%s %d%.2f", &stu1.name,&stu1.id,&stu1.score);
    printf("\nname=%s,id=%d,score=%.2f\n", stu1.name ,stu1.id ,stu1.score);
    return 0;
}


//stu1.score的输出为0,其他的正常,这是怎么回事



改动处见注释,供参考:

#include <stdio.h>
#include <string.h>
int main() //修改 main后面缺了'()'
{
    struct student{
        char name[50];
        int id;
        float score;
    }stu1,stu={"lihua", 52, 95};
    sscanf("zhangsan 1 80.5","%s %d %f", stu1.name,&stu1.id,&stu1.score);//修改
    //sscanf("zhangsan 1 80","%s %d%.2f", &stu1.name,&stu1.id,&stu1.score);
    printf("\nname=%s,id=%d,score=%.2f\n", stu1.name ,stu1.id ,stu1.score);
    return 0;
}

把scanf中%.2f改为%f试一试

因为你输入哪里,float类型输入格式有问题

%.2f
// 改成如下
%f

img