1、把dict.txt文件内容放入数据库中
#include <stdio.h>
#include <sqlite3.h>
#include <string.h>
int dicttotable(sqlite3* db)
{
FILE* fp=fopen("./dict.txt","r");//打开文件,以读的方式
if(NULL == fp)
{
perror("fopen");
return -1;
}
char buf[500] = "";
char word[100] = "";
char word2[100] = "";
char mean[200] = "";
char mean2[200] = "";
int i=1;
int j=0,len=0,flag;
char sql[500] = "";
char* errmsg = NULL;
while(fgets(buf,sizeof(buf),fp) != NULL)//读一行
{
sscanf(buf,"%s %[^\n]",word,mean);
sscanf(mean,"%s %[^\n]",word2,mean2);
len = strlen(word2);
flag = 0;
for(j=0;j<len;j++)
{
if('.' == word2[j])
{
flag=1;
}
}
if(0 == flag)
{
strcat(word," ");
strcat(word,word2);
bzero(mean,sizeof(mean));
strcat(mean,mean2);
}
sprintf(sql,"insert into dict values(%d,\"%s\",\"%s\")",i++,word,mean);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
fprintf(stderr,"__%d__ sqlite3_exec : %s\n",__LINE__,errmsg);
return -1;
}
bzero(sql,sizeof(sql));
bzero(buf,sizeof(buf));
bzero(word,sizeof(word));
bzero(word,sizeof(word2));
bzero(mean,sizeof(mean));
bzero(mean,sizeof(mean2));
}
fclose(fp);
return 0;
}
int main(int argc, const char *argv[])
{
sqlite3* db = NULL;//打开数据库
if(sqlite3_open("./dict.db",&db) != SQLITE_OK)
{
printf("数据库打开失败!!\n");
printf("%s\n",sqlite3_errmsg(db));
printf("%d\n",sqlite3_errcode(db));
return -1;
}
printf("成功打开sqlite3!!!1\n");
//创建一张表
char sql[128]="create table if not exists dict (id int, name char, mean 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("表创建成功!!\n");
dicttotable(db);
//关闭数据库
sqlite3_close(db);
return 0;
}