初始化`int strcmpi(con​​st char *,const char *)'的参数1错误

时间:2016-06-28 05:25:17

标签: c++

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

2 个答案:

答案 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* name1char name1[]