char BOOK::retname()
{
return name;
}
void BOOK::searchbook()
{
clrscr();
int flag=0;
char name2[30];
FILE *fp;
cout<<"Enter Book Name: ";
cin.get();
gets(name2);
char name1=retname();
fp = fopen("Records.txt","rb");
while(fread(&BOOK,sizeof(BOOK),1,fp)==1){
if(strcmpi(name1,name2)==0)
{
flag=1;
cout<<"This book is available: ";
} }
}
我在这里遇到一些错误,比如从char *到char的无效转换
我是文件处理问题的新手,所以调试不在我的思考范围内
请不要责怪我使用gets()
谢谢你
PS:char name是BOOk类的私人成员
我想我不能将字符串名称与第14行中的普通字符名称1相提并论,但我不知道如何解决这个问题
编辑我现在收到第16行的错误
“在'之前预期的初级表达','令牌”
编辑我得到了它的工作,感谢无论如何人民!请锁定此线程mods
答案 0 :(得分:1)
查看您获得的错误行
char name1=retname();
if(strcmpi(name1,name2)==0)
strcmpi不会使用char
,需要char *
。 char不是char数组。 char是一个单个字符,所以如果你的char name
变量应该长于一个字符,我认为你已经声明了错误。
答案 1 :(得分:0)
retname(); 函数返回字符串,但name1
变量只占用一个字符,因为它声明为char
。因此,声明name1
变量char* name1
或char name1[]
。