fgets函数用不了,怎么办?

int StuInput(){//输入信息
    int i=0, t;//录入学生人数
    char xh[14];
    printf("输入学号为1位,则停止输入。\n");
    while(1){
        printf("请输入你的学号:\n");
        myGets(xh,14);
        if(strlen(xh)==0)break;
        strcpy(s[i].id,xh);
        printf("请输入你的名字:\n");
        myGets(s[i].name,31);
        getchar();
        printf("请输入你的性别:\n");
        myGets(s[i].sexy,20);
        int j;
        s[i].sum=0;
        printf("请输入你的成绩:\n");
        printf("(语文 数学 英语)\n");
        for(j=0;j<3;j++){
            scanf("%d", &s[i].score[j]);
            s[i].sum=s[i].sum+s[i].score[j];
        }
        getchar();
        i++;
    }
    return i;
}


void myGets(char s[], int len){//
    fgets(s,len,stdin);
    s[strlen(s)-1]='\0';
    return 0;
}


void writeFile(){//录入文件
     FILE *fp;
     if((fp=fopen("student.txt","wb"))==NULL){
        printf("无法打开文件\n");
        return 0;
        }
        fwrite(s,sizeof(StuSys),n,fp);
        return 1;
        fclose(fp);
}


int main(){
    int choice;             //选择功能变量
    welcome();              //初始界面
//    Login();              //登录系统
    Sleep(3000);
    system("cls");          //清屏
        menu();
        scanf("%d", &choice);
        switch(choice){
            case 0: printf("欢迎下次使用!!\n");
                break;
            case 1:
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6: outPutFile();
                break;
            case 7: n=StuInput();
                writeFile();
                break;
            case 8: loadFile();
                break;
            case 9: system("cls");
                break;
        }
    return 0;
}

 这是完整代码

可以正常使用,记得去掉 s[strlen(s)-1]='\0',因为它自动加上结束符。

#include<stdio.h>
void myGets(char s[], int len)
{
    fgets(s,len,stdin);
    return 0;
}
void main()
{
    int i,n;
    char a[10];
    myGets(a,5);
    printf("%s",a);
}

具体使用可以参考:C 库函数 – fgets() | 菜鸟教程 (runoob.com) 

你都没有引入fgets函数库,你在程序第一行写入# include <stdio.h>来引入# include <stdio.h>,你以后遇到c语言怎么函数用不了上网找一下是不是你用的函数没有引入

楼主的代码有一个问题,就是fwrite写入,如果用fgets读取就会出现乱码;因为fwrite是二进制形式写入的,而fgets是ASCII形式读取的。建议用fgets读取,就要用fputs写入,同理fwrite写入就要用fread读取,保证不出现乱码,就要用对应的函数对;