电子词典导入数据库
#include <myhead.h>
int main(int argc, const char *argv[])
{
//打开数据库
sqlite3 *db;
if(sqlite3_open("./zd.db", &db) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_open: %s %d __%d__\n",\
sqlite3_errmsg(db), sqlite3_errcode(db), __LINE__);
return -1;
}
printf("sqlite3_open success\n");
//创建一个表格
//注意:在数据库中sql语句怎么写,在代码中就怎么写
//如果不知道代码中的sql语句是否正确,可以粘贴到数据库执行
char sql[128] = "create table if not exists zz (english char, chinese char);";
char *errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_exec:%s __%d__", errmsg, __LINE__);
return -1;
}
printf("create table zz sucess\n");
//打开字典文件
FILE *fp;
//以只读的形式打开文件
if((fp=fopen("./dict.txt", "r")) == NULL)
{
perror("fopen error");
return -1;
}
//从文件中取数据
char buf[128] = "";
bzero(buf, sizeof(buf));
fgets(buf, sizeof(buf), fp);
buf[strlen(buf)-1] = '\0';
//全字段插入
for(int i=0; i<sizeof(buf); i++)
{
if(buf[i]!=' ' && buf[i+1]==' ')
{
//得到一个字符串
buf[i+1] = '\0';
sprintf(sql, "insert into zz values ('%s','%s');\n", buf, &buf[i+2]);
printf("sql=%s\n", sql);
}
}
//char *errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_exec:%s __%d__\n", errmsg, __LINE__);
return -1;
}
printf("insert into zz success\n");
//关闭文件
fclose(fp);
//关闭数据库
if(sqlite3_close(db) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_close: %s %d __%d__\n",\
sqlite3_errmsg(db), sqlite3_errcode(db), __LINE__);
return -1;
}
printf("sqlite3_close sucess\n");
return 0;
}
思维导图