#include <stdio.h>
#include <string.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{
//创建并打开数据库
sqlite3 *db=NULL;
if(sqlite3_open("./cidian.db",&db)!=SQLITE_OK)
{
fprintf(stderr,"__%d__ sqlite3_open :%d | %s \n",\
__LINE__,sqlite3_errcode(db),sqlite3_errmsg(db));
return -1;
}
printf("sqlite3_open success __%d__\n",__LINE__);
//创建表格
char sql[128]="create table if not exists cidian(id int primary key,engliash 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("table cidian create success __%d__\n",__LINE__);
FILE* fd=fopen("./dict.txt","r");
if(NULL==fd)
{
perror("fopen");
return -1;
}
char buf[128]="";//读取每一行数据
char arr[50]="";
char brr[300]="";
char c=' ';
char sql1[128]="";
int i=0;
while(1)
{
i++;
bzero(buf,sizeof(buf));
bzero(arr,sizeof(arr));
bzero(brr,sizeof(brr));
fgets(buf,sizeof(buf),fd);
while(strlen(buf)==0)
break;
buf[strlen(buf)-1]=0;
for(int j=0;j<strlen(buf)-2;j++)
{
if(buf[j]!=c&&buf[j+1]==c&&buf[j+2]==c)
{
strncpy(arr,buf,j+1);
}
else if(buf[j]==c&&buf[j+1]==c&&buf[j+2]!=c)
{
strcpy(brr,buf+j+2);
}
}
sprintf(sql1,"insert into cidian values(%d,\"%s\",\"%s\")",i,arr,brr);
if(sqlite3_exec(db,sql1,NULL,NULL,&errmsg)!=SQLITE_OK)
{
fprintf(stderr,"__%d__ sqlite3_exec:%s\n",__LINE__,errmsg);
return -1;
}
}
fclose(fd);
return 0;
}