高手求教: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;
};
[解决办法]
//------------------------------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