当前位置: 首页 > news >正文

通过C实现sqlite3操作,导入电子词典

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{//创建并打开一个数据库sqlite3 *db = NULL;if(sqlite3_open("./dict.db",&db) != SQLITE_OK){printf("sqlite3_open:%s %d __%d__\n",\sqlite3_errmsg(db),sqlite3_errcode(db),__LINE__);return -1;}printf("open database my.db success\n");//创建一个表格 create table stu (id int,name char,score float);//数据库中sql语句怎么写,这里就怎么写char sql[128] = "create table if not exists dict (word char,mean char);";char* errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_open:%s %d __%d__\n",\errmsg,sqlite3_errcode(db),__LINE__);return -1;}printf("create table stu success\n");//打开文件FILE* fp = fopen("./dict.txt","r");if(NULL == fp){perror("fopen");return -1;}//循环读取文件中的数据,一行一行的读取char buf[256] = "";char word[32] = "";char mean[200] = "";int count = 1;int i =0;char* ptr = NULL;while(1){if(fgets(buf,sizeof(buf),fp) == NULL)break;buf[strlen(buf)-1] = 0;//分离单词和意思bzero(word,sizeof(word));bzero(mean,sizeof(mean));//获取" "子串在buf中的地址ptr = strstr(buf," ");if(NULL == ptr){printf("没有找到对应子串\n");break;}strncpy(word,buf,ptr-buf);    //" "子串前面是单词strcpy(mean,ptr+3);           //" "子串后面是意思//插入到数据库中sprintf(sql,"insert into dict values(\"%s\",\"%s\");",word,mean);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("sqlite3_exec failed:%s __%d__\n",errmsg,__LINE__);return -1;}}//关闭文件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;}return 0;
}

http://www.lryc.cn/news/142840.html

相关文章:

  • K8S集群中使用JDOS KMS服务对敏感数据安全加密 | 京东云技术团队
  • SpringBoot+quartz实现定时任务的创建、删除、查询操作
  • Oracle的学习心得和知识总结(二十八)|Oracle数据库数据库回放功能之论文二翻译及学习
  • 排序算法:归并排序
  • Hbase-技术文档-spring-boot整合使用hbase--简单操作增删改查--提供封装高可用的模版类
  • 基于Pytorch的神经网络部分自定义设计
  • 持续更新串联记忆English words
  • postgresql 内核源码分析 btree索引的增删查代码基本原理流程分析,索引膨胀的原因在这里
  • 详细了解G1、了解G1、G1垃圾收集器详解、G1垃圾回收器简单调优
  • vue项目中 package.json 详解
  • 为什么要进行管网水位监测,管网水位监测的作用是什么
  • webpack学习笔记
  • 解析代理IP在跨境电商和社媒营销中的关键作用
  • Unity 之 Start 与Update 方法的区别
  • Spring Boot中如何编写优雅的单元测试
  • 三星Galaxy S23与iPhone 15的对比分析:谁会胜出?
  • MySQL索引 事物 存储引擎
  • 【谷粒学院】报错记录
  • 微积分基本概念
  • 【业务功能篇78】微服务-前端后端校验- 统一异常处理-JSR-303-validation注解
  • pytorch的用法
  • Qt 设置窗口背景
  • 大模型是什么?泰迪大模型能够解决企业哪些痛点?
  • YOLOv7-tracker 目标追踪 输入视频帧
  • C语言二——C语言编写一段代码,求一元二次方程的根
  • 用Idea把SpringBoot项目打包镜像上传至docker
  • 基于 SVG 的图形交互方案实践
  • 微服务(rpc)
  • ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
  • Springboot+Mybatis框架是否会取代SSM框架?