1.电子词典
#include <myhead.h>
int main(int argc,const char *argv[])
{
sqlite3 *pdb = NULL;//存放数据库指针
char *errmsg = NULL;//错误信息
if(sqlite3_open("./dict.db",&pdb) != SQLITE_OK)//打开数据库
{
fprintf(stderr,"sqlite3_open:%s line:%d\n",sqlite3_errmsg(pdb),__LINE__);
return -1;
}
char create[128] = "create table if not exists dict1 (word char,translation char)";
if(sqlite3_exec(pdb,create,NULL,NULL,&errmsg) != SQLITE_OK)//创建数据库
{
fprintf(stderr,"create:%s line:%d\n",errmsg,__LINE__);
return -1;
}
FILE *fdict= fopen("./dict.txt","r");//打开辞典文件
if(fdict == NULL)
{
ERR_MSG("fopen");
return -1;
}
char work[2][64];//存放单词和意思
char works[128]="";//存放从文件中读取的数据
bzero(work,sizeof(work));
while(fgets(works,sizeof(work),fdict))//每次读取一行
{
int count = 0,i=0;
while(1)//找到单词和意思的分界
{
if(works[i++] == ' ')
{
count++;
if(count == 2) break;
}
else count = 0;
}
works[i-2] = 0;
strcpy(work[0],&works[0]);//存放单词
while(works[i]==' ') i++;
strcpy(work[1],&works[i]);//存放意思
work[1][strlen(work[1])-1] = 0;
char insert[256]="";
snprintf(insert,sizeof(insert),"insert into dict1 values(\"%s\",\"%s\")",work[0],work[1]);//sql语句,把单词和词义放入表中
if(sqlite3_exec(pdb,insert,NULL,NULL,&errmsg) != SQLITE_OK)//执行sql语句
{
fprintf(stderr,"%s:%s line:%d",insert,errmsg,__LINE__);
return -1;
}
bzero(work,sizeof(work));
}
sqlite3_close(pdb);
return 0;
}