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:字符名称是Book类的私有成员
我想我不能在line14一个普通的字符名1等同串的名字,但我不知道知道如何解决这个问题。
编辑现在我16行
得到错误“之前的预期‘’令牌主表达式”
编辑我得到它的工作,感谢反正人民!请锁定这个线程MODS初始化参数1 int strcmpi(const char *,const char *)'错误
阅读完整的错误信息,看看类型使用调用'strcmp'的变量,然后学习如何使用C++标准库和它的类,而不是与旧的C混合构造你的代码。 –
另外,千万不要使用旧的C函数'gets'。它已经从C语言中删除,并且很快也会从C++规范中删除。通常,不要混合使用C++和C输入/输出结构。它们默认同步,但是很混乱。 –
'retname()'必须返回'char *',你可以通过'strcpy(name1,retname())' –