在这里插入代码片
#include “head.h”
int main(int argc, const char *argv[])
{
sqlite3 *ppdb = NULL;
if(sqlite3_open(“./filename.db”, &ppdb) != SQLITE_OK)
{
ERR_MSG(ppdb);
return -1;
}
char filename[4] = "stu1";
char* sql = "create table if not exists filename (id int, english char, chinese char);";
char* errmsg = NULL;
if(sqlite3_exec(ppdb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
ERR_MSG(ppdb);
return -1;
}
printf("表格创建成功\n");
int x = 1;
int choice = 0;
int id_number = 0;
while(x)
{
printf("-------------------------------\n");
printf("---------1.input---------------\n");
printf("---------2.delete--------------\n");
printf("---------3.amend---------------\n");
printf("---------4.inquire-------------\n");
printf("---------5.exit----------------\n");
printf("-------------------------------\n");
printf("输入功能>>>");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 1:
id_number = do_input(ppdb, argv[1], filename);
printf("id_number = %d\n", id_number);
break;
case 2:
printf("id_number = %d\n",id_number);
do_delete(id_number, ppdb, filename);
break;
case 3:
break;
case 4:
do_inquire(ppdb, filename);
break;
case 5:
x = 0;
break;
}
}
if(sqlite3_close(ppdb) != SQLITE_OK)
{
ERR_MSG(ppdb);
return -1;
}
return 0;
}在这里插入代码片
#include “head.h”
//插入
int do_input(sqlite3* ppdb, const char* argv, char filename[])
{
char input[128] = “”;
char* errmsg_input;
char eng[64] =“”;
char chin[64] = “”;
int i = 0;
char c = 0;
//开文件
FILE* fp = fopen(argv, "r");
if(fp == NULL)
{
perror("fopen");
return -1;
}
while(fscanf(fp, "%s", eng) != EOF)
{
while(fgetc(fp) == 32)
fseek(fp, 1, SEEK_CUR);
fseek(fp, -2, SEEK_CUR);
fgets(chin, sizeof(chin), fp);
chin[strlen(chin) -1 ] = '\0';
i++;
snprintf(input, sizeof(input), "insert into filename (id, english, chinese) values (%d, \"%s\", '%s');",\
i, eng, chin);
if(sqlite3_exec(ppdb, input, NULL, NULL, &errmsg_input) != SQLITE_OK)
{
ERR_MSG(ppdb);
return -1;
}
printf("插入成功\n");
sqlite3_free(errmsg_input);
bzero(input, sizeof(input));
bzero(eng, sizeof(eng));
bzero(chin, sizeof(chin));
}
printf("插入完成 i = %d\n", i);
fclose(fp);
return i;
}
//删除
void do_delete(int id_number, sqlite3* ppdb, char filename[])
{
int id_dele = -1;
printf(“输入您要删除的id>>>”);
scanf(“%d”,&id_dele);
getchar();
if(id_dele <= 0 || id_dele > id_number)
{
printf(“输入的ID不正确\n”);
return;
}
char delet[128] ="";
char* errmsg_dele = "";
snprintf(delet, sizeof(delet), "delete from filename where id = %d;", id_dele);
if(sqlite3_exec(ppdb, delet, NULL, NULL, &errmsg_dele) != SQLITE_OK)
{
ERR_MSG(ppdb);
return;
}
printf("删除成功\n");
sqlite3_free(errmsg_dele);
return;
}
//查找
void do_inquire(sqlite3* ppdb, char filename[])
{
char inq_opt[128] = “”;
char* err_inq = “”;
char** pazresult = NULL;
int row, column;
strcpy(inq_opt, "select * from filename where id < 100");
if(sqlite3_get_table(ppdb, inq_opt, &pazresult, &row, &column, &err_inq) != SQLITE_OK)
{
ERR_MSG(ppdb);
return;
}
int k = 0;
for(int i = 0; i < row+1; i++)
{
for(int j = 0; j < column; j++)
{
if(k % column == 1)
printf("%8s", pazresult[k++]);
else
printf("%s\t",pazresult[k++]);
}
putchar(10);
}
return;
}