初始化"int strcmpi(const char*, const char*)"错误的参数 1
initializing argument 1 of `int strcmpi(const char*, const char*)' error
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
的私有成员我认为我不能将字符串name等同于第14行中的普通char name1,但我不知道如何解决这个问题。
编辑我现在得到错误在第16行
"期望的主表达式在',' token"
编辑我得到了它的工作,无论如何感谢人们!!
查看您得到的错误行
char name1=retname();
if(strcmpi(name1,name2)==0)
strcmpi不取char
in,取char *
in。char不是字符数组。一个字符是一个字符,所以我认为你已经声明了一些错误的东西,如果你有一个char name
变量,应该长于一个字符。
retname();函数返回字符串,但name1
变量只取一个字符,因为它被声明为char
。因此,声明name1
变量char* name1
或char name1[]