c语言输出问题
//成绩录入模块
create()
{
FILE *fp;
STUDENT stud;
int i, stu_c;
if ((fp = fopen("cj1.dat", "wb+")) == NULL)
{
printf("file open error!\n");
exit(1);
}
system("cls");
printf("please input students total counts:");
scanf("%d%*c", &stu_c);
printf("input %d students info\n", stu_c);
for (i = 1;i <= stu_c;i++)
{
printf("input NO%d student information:\n", i);
printf("Number:");
//gets(stud.num);
scanf("%[^\n]%*c",stud.num);
printf("Name:");
//gets(stud.name);
scanf("%[^\n]%*c",stud.name);
printf("3 scores(separato:):");
scanf("%f,%f,%f%*c", &stud.score, &stud.score, &stud.score);
stud.score = (stud.score + stud.score + stud.score) / 3;
fwrite(&stud, sizeof(STUDENT), 1, fp);
}
fclose(fp);
return 0;
}
调试结果
please input students total counts:3
input 3 students info
input NO1 student information:
Number:001
Name:aaa
3 scores(separato:):30 50 70
input NO2 student information:
Number:Name:002
3 scores(separato:):40 10 20
input NO3 student information:
Number:Name:003
3 scores(separato:):
第二次和第三次输出的时候number跟name一起出来了,只能接收一个值,这个地方第一次通过了不知道怎么处理
没人吗 建议把代码贴完整
scanf("%[^\n]%*c",stud.num);//这一行代码 ————你的结构体中定义的num是 int还是int * ,如果是 int ;建议改成:
scanf("%[^\n]%*c",&stud.num); 人造人 发表于 2019-8-19 22:32
建议把代码贴完整
只是这个模块问题。已经解决了,输入的时候没打逗号。 Richard149 发表于 2019-8-20 22:23
scanf("%[^\n]%*c",stud.num);//这一行代码 ————你的结构体中定义的num是 int还是int *...
好的 已经解决了,输入的时候没打逗号
页:
[1]