c++学生信息管理系统课设问题

那个fopen函数的参数at是只有写入的功能,然后我这里想让他进行读取文件里面的数据操作,参数应该使用r,但是用r的话好像程序没有反应,只有用at才有反应。而且这个at就只有在控制台写入的数据才进行记录,之前在文件里的数据就没有记录。。
int exists = 0;
if(!access("C:\work\stuinfo.txt",0))
exists=1;

    char a[20];
    char b[30];
    char c[20];
    char d[20];
    if(exists)
    {
        fp= fopen("C:\\work\\stuinfo.txt","at");//at的使用有问题 
        fscanf(fp,"%d",&countOfStudent);
        for (int i = 0;i<countOfStudent;i++)
        {
            student stu = new studentNode;
            fscanf(fp,"%s %s %s %s\n",b,a,c,d);
            stu->number = b;
            stu->name = a;
            stu->banji=c;
            stu->sex=d;
            //头插法
            stu->next = studentLink->next;
            studentLink->next = stu;
        }
        cout<<"已加载完成!"<<"已加载"<<countOfStudent<<"条数据!"<<endl;
        //cout<<stu1.name<<stu1.number<<stu1.chinese<<stu1.math<<stu1.english<<endl;

    }else{
        cout<<"暂无本地数据,请手动创建!"<<endl;
    }
        fclose(fp);
    break;

https://wenku.baidu.com/view/facd9b33b90d6c85ec3ac6da.html