读书人

高手C++做的一个数据管理系统报错

发布时间: 2012-11-10 10:48:51 作者: rapoo

高手求教:C++做的一个数据管理系统报错
void Deleteone () //删除一个学生数据
{
FILE *fp;
char n[13];
struct imfo aa[N],b;
int i,j;
fp=fopen("stu.txt","r");
cout<<"输入要删除的学生的学号:"<<endl;
cin>>n;
for(i=0;fread(&aa,LEN1,1,fp)==1;) // 把要保留的数据读入aa数组
{
if(strcmp(n,aanum)==0) fread(&b,LEN1,1,fp); // 把要删除的学生读入b
else i++;
}

这段报错,说没有定义类型,num的问题。最下面的两段:
--------------------Configuration: stu - Win32 Debug--------------------
Compiling...
stu.cpp
D:\Program Files\Microsoft Visual Studio\MyProjects\student\stu.cpp(109) : error C2228: left of '.num' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\student\stu.cpp(141) : error C2228: left of '.num' must have class/struct/union type
执行 cl.exe 时出错.

但是已经定义了啊:
truct imfo //要存入文件学生信息
{
char num[13];
char name[16];
float English;
float Math;
float Computer;
float ave;
float total;
};

[解决办法]

C/C++ code
//------------------------------void Deleteone ()                        //删除一个学生数据{      FILE *fp;    char n[13];    struct imfo aa[N],b;    int i,j;    fp=fopen("stu.txt","r");    cout<<"输入要删除的学生的学号:"<<endl;    cin>>n;    for(i=0;fread(&aa,LEN1,1,fp)==1;)                        //  把要保留的数据读入aa数组    {           if(strcmp(n,aa[i].num)==0) fread(&b,LEN1,1,fp);         /* 把要删除的学生读入b*/           else i++;    }                fclose(fp);    fp=fopen("stu.txt","w");    for(j=0;j<i;j++)       fwrite(&aa[j],LEN1,1,fp);    fclose(fp);}//另外,那些需要返回值的函数都没有return 

读书人网 >C++

热点推荐