要求:单词一列,意思一列
#include <stdio.h>
#include <sqlite3.h>
#include <string.h>
#include "./03_func.h"
int main(int argc, const char *argv[])
{
//打开数据库
sqlite3* db=NULL;
if(sqlite3_open("./sp.db",&db)!=SQLITE_OK){
printf("splite3_open:%d %s,%d\n",\
sqlite3_errcode(db),\
sqlite3_errmsg(db),__LINE__);
return -1;
}
printf("sqlite3_open success\n");
//创建一张表
char *sql="CREATE TABLE if not exists dc (word char, js char);";
char *errmsg=NULL;
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
sqlite3_free(errmsg);
return -1;
}
printf("创建表格成功\n");
//打开文件
FILE* fp=fopen("./dict.txt","r");
if(fp==NULL){
perror("fopen");
return -1;
}
char buf[100]="";
int dq=0;
while(1){
int i=0;
bzero(buf,sizeof(buf));
while(1){
dq=fgetc(fp);
if(dq==EOF){
perror("fgetc");
printf("__%d__",__LINE__);
break;
}
buf[i]=dq;
i++;
if(dq=='\n'){
break;
}
//printf("%d\n",i);
}
//printf("%s\n",buf);
if(dq==EOF){
break;
}
char buf1[100]="";
char buf2[100]="";
int j=0;
while(1){
if(buf[j]==' '){
break;
}
buf1[j]=buf[j];
j++;
}
int k=0;
while(1){
if(buf[j]==' '){
j++;
continue;
}
if(buf[j]=='\0'){
break;
}
buf2[k]=buf[j];
k++;
j++;
}
printf("%s\t%s",buf1,buf2);
char* cw=NULL;
char sql[100]="";
sprintf(sql,"insert into dc values(\"%s\",'%s');",buf1,buf2);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{
fprintf(stderr,"sqlite3_exec:%s _%d_\n",errmsg,__LINE__);
sqlite3_free(errmsg);
return -1;
}
bzero(sql,sizeof(sql));
}
//关闭文件
if(fclose(fp)==EOF){
perror("fclose");
printf("__%d__",__LINE__);
return -1;
}
//关闭数据库
if(sqlite3_close(db)!=SQLITE_OK){
printf("sqlite3_close:%d %s __%d__\n",sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);
return -1;
}
printf("sqlite3_close success\n");
return 0;
}