使用sqlite3代码实现将词典导入数据库中
#include <head.h>
#include <sqlite3.h>
#include <strings.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{sqlite3 *db = NULL;if(sqlite3_open("./dict.db",&db) != SQLITE_OK){fprintf(stdin,"sqlite3_open:%s %d",\sqlite3_errmsg(db),sqlite3_errcode(db));return -1;}printf("sqlite3_open success\n");char sql_c[128] = "create table if not exists Dictionary (word char,TRANSLATORS char)";char *errmsg = NULL;if(sqlite3_exec(db,sql_c,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:%s %d",errmsg,sqlite3_errcode(db)); return -1;}printf("create table Dictionary success\n");FILE * fd = fopen("./dict.txt","r");if(fd < 0){ERRO_MES("open");return -1;}char buf[128] = "";char word[128] = "";char mean[128] = "";char sql_i[128] = "";while(1){if(fgets(buf,sizeof(buf),fd) == NULL){break;}buf[strlen(buf)-1] = 0;for(int i=0;i<strlen(buf)-2;i++){if(buf[i] != ' ' && buf[i+1] == ' '){strncpy(word,buf,i+1);}else if(buf[i] == ' '&& buf[i+1] == ' ' &&buf[i+2]!= ' '){strcpy(mean,(buf+i+2));break;}}bzero(sql_i,sizeof(sql_i));sprintf(sql_i,"insert into Dictionary values ('%s','%s')",word,mean);if(sqlite3_exec(db,sql_i,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:%s %d",errmsg,sqlite3_errcode(db)); return -1;}}if(sqlite3_close(db) != SQLITE_OK){fprintf(stdin,"sqlite3_close:%s %d",\sqlite3_errmsg(db),sqlite3_errcode(db));return -1;}printf("sqlite3_close success\n");fclose(fd);return 0;
}