#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sqlite3.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
//创建数据库
sqlite3 *db=NULL;
if(sqlite3_open("./dict.db",&db)!=SQLITE_OK)
{
printf("errmsg=%s\n",sqlite3_errmsg(db));
return -1;
}
printf("database open success\n");
//创建表格
char sql[128]="create table if not exists diction(word char,mean char);";
char *errmsg=NULL;
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("errmsg=%s\n",errmsg);
return -1;
}
printf("create excel success\n");
//打开文件
FILE *fp=fopen("./dict.txt","r");
if(NULL==fp)
{
perror("fopen");
return -1;
}
char word[50]="";//存储单词
char mean[250]="";//存储解释
char buf[300]="";//存储内容
while(fgets(buf,sizeof(buf),fp)!=NULL)
{
buf[strlen(buf)-1]=0;
int i=0;
for(i=0;i<strlen(buf)-2 ;i++)
{
if(buf[i]!=' '&&buf[i+1]==' '&&buf[i+2]==' ')
strncpy(word,buf,i+1);
if(buf[i]==' ' &&buf[i+1]==' '&&buf[i+2]!=' ')
{ strcpy(mean,buf+i+2);
break;
}
}
//把这一行内容插入到数据库
sprintf(sql,"insert into diction values (\"%s\",\"%s\");",word,mean);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
printf("errmsg=%s\n",errmsg);
return -1;
}
bzero(buf,sizeof(buf));
bzero(word,sizeof(word));
bzero(mean,sizeof(mean));
}
//关闭文件
fclose(fp);
//关闭数据库
sqlite3_close(db);
return 0;
}
华清远见2022081班作业
于 2022-10-27 22:46:56 首次发布