fengye123 发表于 2019-8-19 08:57:46

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一起出来了,只能接收一个值,这个地方第一次通过了不知道怎么处理

fengye123 发表于 2019-8-19 21:40:37

没人吗

人造人 发表于 2019-8-19 22:32:09

建议把代码贴完整

Richard149 发表于 2019-8-20 22:23:27

         scanf("%[^\n]%*c",stud.num);//这一行代码 ————你的结构体中定义的num是 int还是int * ,如果是 int      ;建议改成:

scanf("%[^\n]%*c",&stud.num);

fengye123 发表于 2019-8-22 07:06:14

人造人 发表于 2019-8-19 22:32
建议把代码贴完整

只是这个模块问题。已经解决了,输入的时候没打逗号。

fengye123 发表于 2019-8-22 07:08:37

Richard149 发表于 2019-8-20 22:23
scanf("%[^\n]%*c",stud.num);//这一行代码 ————你的结构体中定义的num是 int还是int *...

好的 已经解决了,输入的时候没打逗号
页: [1]
查看完整版本: c语言输出问题