代码如下:
#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
sqlite3 *db = NULL;
//创建并打开一个数据库
if(sqlite3_open("./mysql.db",&db) != SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_open file:%d:%s\n",__LINE__,sqlite3_errcode(db),sqlite3_errmsg(db));
return -1;
}
printf("sqlite3_open success\n");
//打开文件
FILE *fp = fopen("./dict.txt","r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
//创建表格
char sql[128] = "create table if not exists stu(word char ,chinese char);";
char *errmsg = NULL;
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
return -1;
}
printf("table stu success\n");
char *word = NULL;
char *chinese = NULL;
char wc[128] = "";
char *res = NULL;
char str[128] = "";
int i = 0;
int flag = 0;
while(1)
{
bzero(wc,sizeof(wc));
flag = 0;
res = fgets(wc,sizeof(wc),fp);
wc[strlen(wc)-1] = 0;
if(NULL == res)
{
printf("读取完毕\n");
break;
}
while(1)
{
if(0 == flag)
{
if(' ' == *(wc+i))
{
*(wc+i) = '\0';
word = wc;
flag = 1;
}
}
else
{
if(' ' != *(wc+i))
{
chinese = wc+i;
break;
}
}
i++;
}
i = 0;
sprintf(str,"insert into stu values (\"%s\",\"%s\");",word,chinese);
if(sqlite3_exec(db,str,NULL,NULL,&errmsg) != SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_exec:%s\n",__LINE__,errmsg);
return -1;
}
}
printf("insert success\n");
//关闭数据库
if(sqlite3_close(db) != SQLITE_OK)
{
fprintf(stderr,"line:%d sqlite3_close file:%d:%s\n", __LINE__,sqlite3_errcode(db),sqlite3_errmsg(db));
return -1;
}
//关闭流指针
fclose(fp);
return 0;
}
终端执行结果: