Ich versuche, eine einfache Anmeldung zu erstellen mit sQLite in C++ und wenn ich den Code zu kompilieren, es erscheint mir diese Fehlermeldung:Login mit SQLite in C++ [Fehler] kann 'bool' nicht konvertieren zu 'const char *' für Argument '1' zu 'int strcmp (const char *, const char *)'
„[Fehler] nicht konvertieren 'Bool' auf 'const char *' für Argument '1' bis‚int strcmp (const char *, const char *) '“
Das Verfahren, bei dem er den Fehler erscheint, ist dieses:
int iniciarSesion(sqlite3 *db,char log[], char pass[]){
sqlite3_stmt *stmt;
char sql[] = "select login,password from usuario where login=?" ;
int result = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL) ;
if (result != SQLITE_OK) {
return result;
}
result = sqlite3_bind_text(stmt, 1, log, strlen(log), SQLITE_STATIC);
if (result != SQLITE_OK) {
return result;
}
char login[100];
char password[100];
do {
result = sqlite3_step(stmt) ;
if (result == SQLITE_ROW) {
// busca dentro de la bd fila por fila
strcpy(login, (char *) sqlite3_column_text(stmt, 1));
strcpy(password, (char *) sqlite3_column_text(stmt, 2));
if(strcmp((password,pass)!=0){
cout<<"incorrect login... try again"<<endl;
cout<<""<<endl;
}else{
cout<<"correct Login!"<<endl;
cout<<""<<endl;
menuPrincipal();
}
}
}while (result == SQLITE_ROW);
cout<<endl;
cout<<endl;
result = sqlite3_finalize(stmt);
if (result != SQLITE_OK) {
//cout<<"Error finalizing statement (SELECT)"<<endl;
return result;
}
//cout<<"Prepared statement finalized (SELECT)"<<endl;
return SQLITE_OK;
}
Schauen Sie sich die Zeile mit dem Aufruf 'strcmp' an und zählen Sie die Anzahl der Klammern (' ('und') '). –
Sie haben eine zusätzliche Klammer an Ihrer 'strcmp' und eine Million und eine nachfolgende Fehler. –