569968961 发表于 2017-11-14 16:11:22

c语言关于gets的问题

#include <stdio.h>
#include <stdlib.h>
#define S student
struct person
{
        char name;
        struct chengji
        {
                int shuxue;
                int yuwen;
                int yngyu;
        };
        char num;
}S;
void main()
{
        int i, n;
        printf("欢迎来到学生管理系统!\n\n\n");
        printf("请输入要管理学生人数:");
        scanf("%d", &n);
        printf("\n");
        for (i = 1; i <= n; i++)
        {
                printf("请输入第%d个同学的姓名:", i);
                gets(&S.name);
                printf("\n");
        }
}
要打一个学生管理系统的小程序,调试的时候发现gets这一步没有执行,求教!!!!

BngThea 发表于 2017-11-14 16:21:14

首先,gets(&S.name); 你的结构体中的name成员本来就是一个字符串数组,不需要再取地址了
然后,你前面用了scanf函数,输入流中可能会保留有回车,所以会导致跳过第一个同学的录入
应该在scanf后面加上一句getchar();

569968961 发表于 2017-11-14 16:27:37

BngThea 发表于 2017-11-14 16:21
首先,gets(&S.name); 你的结构体中的name成员本来就是一个字符串数组,不需要再取地址了
然后,你前面用 ...

谢谢谢谢~ 帮我解决了问题

BngThea 发表于 2017-11-14 16:31:57

569968961 发表于 2017-11-14 16:27
谢谢谢谢~ 帮我解决了问题

请设为最佳哟~
页: [1]
查看完整版本: c语言关于gets的问题