代码实现
#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
void do_insert(sqlite3* db,int i,char*english,char*chinese)
{
char sql[128]={0};
bzero(sql,sizeof(sql));
sprintf(sql,"insert into stu values(%d,\"%s\",'%s');",i,english,chinese);
printf("%s\n",sql);
char* errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "__%d__ sqlite3_exec:%s\n", __LINE__, errmsg);
return ;
}
printf("insert table success\n");
}
int main(int argc, const char *argv[])
{
sqlite3* db = NULL;
if(sqlite3_open("./my.db", &db) != SQLITE_OK)
{
printf("err_code:%d\n", sqlite3_errcode(db));
printf("errmsg:%s\n", sqlite3_errmsg(db));
fprintf(stderr, "__%d__ sqlite3_open failed\n", __LINE__);
return -1;
}
printf("sqlite3_open success\n");
#if 0
int sqlite3_exec(
sqlite3* db,
const char *sql,
int (*callback)(void*,int,char**,char**),
void *arg,
char **errmsg
);
#endif
char* sql = "create table if not exists stu (id int primary key, english char, chinese char);" ;
char* errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "__%d__ sqlite3_exec:%s\n", __LINE__, errmsg);
return -1;
}
printf("create table success\n");
char choose = 0;
FILE * fd=fopen("./dict.txt","r");
if(fd == NULL)
{
perror("fopen");
return -1;
}
char arr[128];
char brr[128];
char crr[128];
int num=1;
char * res;
while(1)
{
bzero(arr,sizeof(arr));
bzero(brr,sizeof(brr));
bzero(crr,sizeof(crr));
res = fgets(arr,sizeof(arr),fd);
if(res == NULL)
{
break;
}
arr[strlen(arr)-1]=0;
char *p =arr;
for(int i=0;i<strlen(arr);i++)
{
if(p[i] == ' ')
{
if(p[i+2] == ' ')
{
for(int j = 0;j<i;j++)
{
brr[j] = arr[j];
}
strcpy(crr,p+i+3);
do_insert(db,num,brr,crr);
num++;
}
}
}
}
fclose(fd);
if(sqlite3_close(db) != SQLITE_OK)
{
printf("err_code:%d\n", sqlite3_errcode(db));
printf("errmsg:%s\n", sqlite3_errmsg(db));
fprintf(stderr, "__%d__ sqlite3_close failed\n", __LINE__);
return -1;
}
printf("sqlite3_close success\n");
return 0;
}
运行结果