1. 将dict.txt的内容导入到数据库中
#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("./my.db", &db) != SQLITE_OK)
{
printf("err_code:%d\n", sqlite3_errcode(db));
printf("errmsg:%s\n", sqlite3_errmsg(db));
printf("__%d__\n", __LINE__);
return -1;
}
printf("打开成功\n");
//创建一个表格
char *sql = "create table if not exists stu (word char, mean char)";
char *errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("__%d__ sqlite3_exec:%s\n",__LINE__, errmsg);
return -1;
}
printf("表格创建成功\n");
FILE *fp = fopen("./day1701.c", "r"); //打开存放单词的文件
if(fp == NULL)
{
perror("fopen");
return -1;
}
char buf1[64] = "";
char buf2[64] = "";
char buf3[64] = "";
int res1 = 0, res2 = 0, i = 0, j = 0;
while(fgets(buf1, sizeof(buf1), fp) != NULL) //读一次,往表格插入一次
{
buf1[strlen(buf1)-1] = '\0'; //将最后一位\n换成'\0'
bzero(buf2, sizeof(buf2));
bzero(buf3, sizeof(buf3));
i = 0, res1 = 0, res2 = 0;
while(buf1[i] != ' ')
{
i++;
res1++;
}
for(i=0; i<res1; i++) //先把单词分离出来
{
buf2[i] = buf1[i];
}
if(buf1[res1+1] != ' ')
{
buf2[res1] = ' ';
i = res1;
while(buf1[res1+1] != ' ')
{
res1++;
res2++; //拼接单词要循环的次数
}
res1 = i;
for(i=0; i<res2; i++)
{
buf2[res1+1] = buf1[res1+1];
res1++;
}
strcpy(buf3, buf1+res1+4);
}else
strcpy(buf3, buf1+res1+3);
bzero(buf1, sizeof(buf1)); //单词分离完毕,现在进行插入
sprintf(buf1,"insert into stu values (\"%s\", \"%s\")", buf2, buf3); //sqlite语句组装完成
printf(" :%s %s %s\n",buf1, buf2, buf3);
if(sqlite3_exec(db, buf1, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("__%d__ sqlite3_exec:%s\n",__LINE__, errmsg);
return -1;
}
//j++;
//bzero(buf1, sizeof(buf1));
}
printf("插入完成\n");
if(sqlite3_close(db) != SQLITE_OK)
{
printf("err_code:%d\n", sqlite3_errcode(db));
printf("errmsg:%s\n", sqlite3_errmsg(db));
printf("__%d__\n", __LINE__);
return -1;
}
printf("关闭成功\n");
return 0;
}