今日bug:error: invalid array assignment

Posted on 2019-04-15 23:26  muyuying  阅读(8562)  评论(0编辑  收藏  举报

错误代码:

struct STUD
{
    int ID;//学号
    char name[20];
    float score;
}stud;
STUD SS[10];
student.open("student.dat",ios::in|ios::binary);
    if(!student)
    {
        cout<<"打开文件失败!"<<endl;
        return 0;
    }
    int j=0;
    student.read((char *)&stud,sizeof(stud));
    while(!student.eof()){
        SS[j].name=stud.name;//报错!
        SS[j].ID=stud.ID;
        SS[j].score=stud.score;
        j++;
        student.read((char *)&stud,sizeof(stud));
    }
    student.close();

这段代码的目的是从文件.dat中读取数据,存储到结构体数组对象SS[j]中,但是对SS[j].name赋值是报错,改成了strcpy(SS[j].name,stud.name)即可,这里若用等号需要重载运算符=。注意添加头文件#include<cstring>