求助,关于结构体问题。
我首先声明了这个结构体如下,struct bookinf
{ int num; /******************************************************登录号*/
char bname[20];/*************************************** 书名*/
char wname[10];/*************************************** 作者名*/
char clanum[14];/*************************************** 分类号*/
char pubcom[10];/*************************************** 出版单位*/
char pubtime[10];/*************************************** 出版时间*/
float price;/********************************************* 价格*/
};
随后编写了这个函数,
void book_add()
{
void adm_servelist();
void book_add();
int i=0,j;
FILE *fp;
char input;
struct bookinf books;
struct bookinf book_taxis[30];
printf("\n\n\n\t---请输入图书信息---\n\n");
printf("\t登录号:");
scanf("%d",&books.num);
printf("\n\t书名:");
scanf("%s",books.bname);
printf("\n\t作者名:");
scanf("%s",books.wname);
printf("\n\t分类号:");
scanf("%s",books.clanum);
printf("\n\t出版单位:");
scanf("%s",books.pubcom);
printf("\n\t出版时间:");
scanf("%s",books.pubtime);
printf("\n\t价格:");
scanf("%f",&books.price);
if ((fp=fopen("book.txt","r"))!=NULL)
{
do
{
fread(&book_taxis[i],sizeof(struct bookinf),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
for (j=0;j<=i;j++)
if (books.num==book_taxis[j].num)
{
printf("\n\n\n\t对不起,这个编号已经使用过了~\n");
printf("\t按任意键返回管理菜单~");
input=getchar();
adm_servelist();
break;
}
}
if ((fp=fopen("book.txt","r"))==NULL)
{
fp=fopen("book.txt","w");
}
else
{
fclose(fp);
fp=fopen("book.txt","a");
}
fwrite(&books,sizeof(struct bookinf),1,fp);
fclose(fp);
printf("\n\n\n\t信息输入完毕~按任意键继续\n");
input=getchar();
adm_servelist();
}
结果在编译时总是出错提示 E:\TDDOWNLOAD\VC6\MyProjects\18\181.cpp(116) : error C2039: 'bname' : is not a member of 'bookinf'
E:\TDDOWNLOAD\VC6\MyProjects\18\181.cpp(7) : see declaration of 'bookinf'。
其它成员都可编译通过,而这个却不被识别,求解?