#include <myhead.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{
sqlite3 *db =NULL;
//打开一个数据库
if(sqlite3_open("./sq.db",&db)!=SQLITE_OK){
printf("sqlite3_open failed __%d__\n",__LINE__);
}
printf("sqlite3_open success __%d__\n",__LINE__);
//创建一个英语表包括两个字段,分别是单词和解释
char sql[128] = "create table if not exists english(world char, explian char);";
char* errmsg = NULL;
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("sqlite3_close failed:%s__%d__\n",errmsg,__LINE__);
return -1;
}
printf("create table stu success__%d__\n",__LINE__);
//以只读模式打开./dict.txt
FILE* fd = fopen("./dict.txt","r");
int res = -1;
char buf [512];
char world[128];
char explian[256];
char* ptr = NULL;
while(1){
//从文件中按行读取
if(fgets(buf,sizeof(buf),fd)==NULL)
break;
buf[strlen(buf)-1] = 0;
//分离单词和意思
bzero(world,sizeof(world));
bzero(explian,sizeof(explian));
ptr = strstr(buf," ");
if(NULL == ptr){
printf("没有找到对应的子串\n");
break;
}
strncpy(world,buf,ptr-buf);
strcpy(explian,ptr+2);
//将单词和解释存进english表
sprintf(sql,"insert into english values (\"%s\",'%s')",world,explian);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("sqlite3_exec failed:%s__%d__\n",errmsg,__LINE__);
return -1;
}
printf("insert success__%d__\n",__LINE__);
}
//关闭数据库
if(sqlite3_close(db)!=SQLITE_OK){
printf("sqlite3_close failed:%d:%s__%d__\n",sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);
}
printf("sqlite3_close success __%d__\n",__LINE__);
//关闭文件
fclose(fd);
return 0;
}