实现功能
1、实现用户注册账号
2、注册完成后将用户信息存储在数据库中
3、用户登陆,如果多次登陆不成功可以重新注册账号再次登陆
4、退出登陆页面
#include <stdio.h> #include <sqlite3.h> #include <string.h> int mysqlite3_callback(void *para, int f_num, char **f_value, char **f_name) { static int flag = 0; int i; if (flag == 0) { for (i = 0; i < f_num; i++) { printf("%-12s", f_name[i]); } printf("\n"); flag = 1; } for (i = 0; i < f_num; i++) { printf("%-12s", f_value[i]); } printf("\n"); return 0; } int main() { sqlite3 *mydb = NULL; int ret = sqlite3_open("./student.db", &mydb); //句柄 if (ret != SQLITE_OK) { printf("open sqlite failed\n"); return -1; } char sql[1024]; sprintf(sql, "create table if not exists user (users varchar(20), password varchar(20));"); ret = sqlite3_exec(mydb, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) { printf("create table failed\n"); return -1; } while(1) { int a; printf("***************************************\n"); printf("请输入你想要执行的操作:\n"); printf("其他字符,退出!!!\n"); printf("1.已有账户请登录:\n"); printf("2.没有账户,请注册:\n"); printf("***************************************\n"); scanf("%d",&a); printf("\n"); char users[20]; char password[20]; if(a==2) { char *errmsg; printf("请输入想要注册户名:"); char username[20]; scanf("%s",users); printf("请输入密码:"); char password[20]; scanf("%s",password); sprintf(sql, "insert into user(users,password)values('%s', '%s');", users, password); // pritnf("%s\n",sql); ret = sqlite3_exec(mydb, sql, NULL, NULL,&errmsg); if (ret != SQLITE_OK) { printf("%s\n",errmsg); printf("注册失败!\n"); return -1; } printf("注册成功!\n"); } if(a==1) { printf("请输入用户名:"); scanf("%s", users); printf("请输入密码:"); scanf("%s", password); sprintf(sql, "select * from user where users='%s' and password='%s';", users, password); ret = sqlite3_exec(mydb, sql, mysqlite3_callback, NULL, NULL); if (ret != SQLITE_OK) { printf("登录失败账户或密码错误,请重新输入\n"); continue; } if(ret==SQLITE_OK) { printf("登录成功!!"); return 0; } } elif() { return 0 ; } } sqlite3_close(mydb); return 0; }