#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