在ubuntu中将dict.txt导入到数据库sqlite3

 将dict.txt导入到数据库

#include <head.h>
#include <sqlite3.h>
int do_insert(int i,char *str,sqlite3 *db);
int main(int argc, const char *argv[])
{//创建泵打开一个数据库sqlite3 *db = NULL;if(sqlite3_open("./my.db",&db) != SQLITE_OK){fprintf(stderr,"sqlite3_open:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("打开数据库my.db成功\n");//创建一个表格 在sqlite中 create table stu (字段名 类型,字段名 类型~~~~);char sql[128] = "create table if not exists dict (id int primary key, words char, translate char);";char *errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("create table dict success\n");//以读的方式打开dict.txt文件FILE *fp = fopen("./dict.txt","r");int i = 1;char buf[128] = "";while(1){if(fgets(buf,sizeof(buf),fp) == NULL){break;}do_insert(i++,buf,db);bzero(buf,sizeof(buf));}//关闭数据库if(sqlite3_close(db) != SQLITE_OK){fprintf(stderr,"sqlite3_close:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("数据库关闭成功\n");fclose(fp);return 0;
}//插入(全文字段插入)
int do_insert(int i,char *str,sqlite3 *db)
{char sql[128] = "";sprintf(sql,"insert into dict values (%d, \"%s);",i,str);char *errmsg = NULL;char *p =NULL;int n = strlen(sql);sql[n-3] = '"';for(int j=32;j<=strlen(sql);j++){if(sql[j] == ' '){sql[j]='"';sql[j+1]=',';sql[j+2]='"';break;}}if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__\n",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("%d insert into dict values success\n",i);return 0;
}

dict文件(部分)

 

 

 结果为:

 一些不成熟的功能

#include <head.h>
#include <sqlite3.h>
int do_insert(sqlite3 *db);
int	do_delete(sqlite3 *db);
int do_update(sqlite3 *db);
//int do_select(sqlite3 *db);
int main(int argc, const char *argv[])
{//创建泵打开一个数据库sqlite3 *db = NULL;if(sqlite3_open("./my.db",&db) != SQLITE_OK){fprintf(stderr,"sqlite3_open:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("打开数据库my.db成功\n");//创建一个表格 在sqlite中 create table stu (字段名 类型,字段名 类型~~~~);char sql[128] = "create table if not exists dict (id int primary key, words char, translate char);";char *errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("create table dict success\n");char choose = 0;while(1){printf("------------------------------\n");printf("-----------1.插入-------------\n");printf("-----------2.删除-------------\n");printf("-----------3.修改-------------\n");printf("-----------4.查询-------------\n");printf("-----------5.退出-------------\n");printf("------------------------------\n");printf("请输入>>> ");choose = getchar();while(getchar() != 10);switch(choose){case '1':do_insert(db);break;case '2':do_delete(db);break;case '3':do_update(db);break;case '4'://		do_select(db);break;case '5':goto END;default:printf("输入无效,请重新输入>>> ");}}END://关闭数据库if(sqlite3_close(db) != SQLITE_OK){fprintf(stderr,"sqlite3_close:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("数据库关闭成功\n");return 0;
}//插入(全文字段插入)
int do_insert(sqlite3 *db)
{int id = 0;char words[128] = "";char translate[128] = "";char sql[128] = "";printf("输入序号 单词 解释\n");scanf("%d %s %s",&id,words,translate);while(getchar() != 10);sprintf(sql,"insert into dict values (%d, '%s', '%s');",id,words,translate);char *errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("insert into dict values success\n");return 0;
}//删除表格中所有的数据
int	do_delete(sqlite3 *db)
{char table[128] = "";char sql[128] = "";printf("输入要删除记录的表格\n");scanf("%s",table);while(getchar() != 10);sprintf(sql,"delete from %s;",table);char *errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("delete from %s success\n",table);return 0;
}//修改表格中记录以id号为限制条件
int do_update(sqlite3 *db)
{char table[128] = "";int id = 0;char words[128] = "";char sql[128] = "";printf("请输入要修改的表格,该修改为修改单词,所以输入格式为表格名称 序号 单词\n");scanf("%s %d %s",table,&id,words);while(getchar() != 10);sprintf(sql,"update %s set words='%s' where id=%d;",table,words,id);char *errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("update success\n");return 0;
}
/*
//查看所有记录
int do_select(sqlite3 *db)
{printf("请输入要查看的表格\n");char table[128] = "";char sql[128] = "";scanf("%s",table);while(getchar() != 10);sprintf(sql,"select * from %s;",table);char *errmsg = NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){fprintf(stderr,"sqlite3_exec:[%d] %s __%d__",\sqlite3_errcode(db),sqlite3_errmsg(db),__LINE__);return -1;}printf("select success\n");return 0;
}
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/97292.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用IDM下载视频出现“由于法律原因,IDM无法下载...

一、问题描述 由于法律原因,IDM无法下载..,如图: 二、原因分析 下载该IDM抓取的M3U8文件,查看其中的内容发现 : #EXT-X-KEY 字段已经写明了加密方式是AES-128,包含一个URI和IV值 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:8 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:…

Cpp学习——list的模拟实现

目录 一&#xff0c;实现list所需要包含的三个类 二&#xff0c;三个类的实现 1.list_node 2.list类 3.iterator_list类 三&#xff0c;功能实现 1.list类里的push_back() 2.iterator类里的运算符重载 3&#xff0c;list类里面的功能函数 1.insert&#xff08;&#xff…

2023国赛数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&#xff0c…

Linux常用命令——dig命令

在线Linux命令查询工具 dig 域名查询工具 补充说明 dig命令是常用的域名查询工具&#xff0c;可以用来测试域名系统工作是否正常。 语法 dig(选项)(参数)选项 <服务器地址>&#xff1a;指定进行域名解析的域名服务器&#xff1b; -b<ip地址>&#xff1a;当主…

Log4net在.Net Winform项目中的使用

引言&#xff1a; Log4net是一个流行的日志记录工具&#xff0c;可以帮助开发人员在应用程序中实现高效的日志记录。本文将提供一个详细的分步骤示例&#xff0c;来帮助您在.Net Winform项目中使用Log4net。 目录 一、安装Log4net二、配置Log4net三、在项目中使用Log4net四、初…

深入探索:Kali Linux 网络安全之旅

目录 前言 访问官方网站 导航到下载页面 启动后界面操作 前言 "Kali" 可能指的是 Kali Linux&#xff0c;它是一种基于 Debian 的 Linux 发行版&#xff0c;专门用于渗透测试、网络安全评估、数字取证和相关的安全任务。Kali Linux 旨在提供一系列用于测试网络和…

uniapp的uview-plus组件库的导入

uniapp的vue3中使用uview-plus组件库。在插件市场中找到该组件并点击如下所示绿色按钮&#xff0c;弹出弹窗选择要导入的项目后&#xff0c;就会在uni_modules文件中生成如下文件内容 关于插件的下载区别&#xff0c;可参考&#xff1a;https://uniapp.dcloud.net.cn/compone…

回归预测 | MATLAB实现SSA-SVM麻雀搜索算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-SVM麻雀搜索算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SSA-SVM麻雀搜索算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基…

(三)行为型模式:3、解释器模式(Interpreter Pattern)(C++示例)

目录 1、解释器模式&#xff08;Interpreter Pattern&#xff09;含义 2、解释器模式的UML图学习 3、解释器模式的应用场景 4、解释器模式的优缺点 5、C实现解释器模式的实例 1、解释器模式&#xff08;Interpreter Pattern&#xff09;含义 解释器模式&#xff08;Interp…

《TCP IP网络编程》第二十四章

第 24 章 制作 HTTP 服务器端 24.1 HTTP 概要 本章将编写 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;服务器端&#xff0c;即 Web 服务器端。 理解 Web 服务器端&#xff1a; web服务器端就是要基于 HTTP 协议&#xff0c;将网页对…

C语言刷题指南(二)

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…

设计模式 : 单例模式笔记

文章目录 一.单例模式二.单例模式的两种实现方式饿汉模式懒汉模式 一.单例模式 一个类只能创建一个对象,这样的类的设计模式就称为单例模式,该模式保证系统中该类只能有一个实例(并且父子进程共享),一个很典型的单例类就是CSTL的内存池C单例模式的基本设计思路: 私有化构造函数…

vector

1.vector的介绍及使用 vector的文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可…

2023-08-19 LeetCode每日一题(两整数相加)

2023-08-19每日一题 一、题目编号 2235. 两整数相加二、题目链接 点击跳转到题目位置 三、题目描述 给你两个整数 num1 和 num2&#xff0c;返回这两个整数的和。 示例 1&#xff1a; 示例 2&#xff1a; 提示&#xff1a; -100 < num1, num2 < 100 四、解题代…

Python 的下一代 HTTP 客户端

迷途小书童 读完需要 9分钟 速读仅需 3 分钟 1 环境 windows 10 64bitpython 3.8httpx 0.23.0 2 简介 之前我们介绍过使用 requests ( https://xugaoxiang.com/2020/11/28/python-module-requests/ ) 来进行 http 操作&#xff0c;本篇介绍另一个功能非常类似的第三方库 httpx&…

板卡常用前端 数据表操作

两年前写的&#xff0c;现在看,有点想吐, 数据操作表,调试设备用 采用外挂的方法&#xff0c;以前设备的接口命令,简易&#xff0c;换个UI展示很容易 自己写着玩的,公司部分产品再用,前端展示,不涉密 index.html <!doctype html> <html><head><meta chars…

改变C++中私有变量成员的值

1、没有引用的情况&#xff1a; #include <iostream> #include <queue> using namespace std; class Person { public:queue<int>que; public:queue<int> getQueue(){return que;}void push(int a){que.push(a);}void pop(){que.pop();} };int main()…

自学C#,要懂得善用MSDN

很多初学者学习编程&#xff0c;都会通过看别人写的教程、或者录制的视频&#xff0c;来学习。 这是一个非常好的途径&#xff0c;因为这个是非常高效的。 但是这样&#xff0c;存在两个问题&#xff1a; 1、教程不够全面&#xff1a;任何再好的教程&#xff0c;都无法囊括所…

Gateway网关路由以及predicates用法(项目中使用场景)

1.Gatewaynacos整合微服务 服务注册在nacos上&#xff0c;通过Gateway路由网关配置统一路由访问 这里主要通过yml方式说明&#xff1a; route: config: #type:database nacos yml data-type: yml group: DEFAULT_GROUP data-id: jeecg-gateway-router 配置路由&#xff1a;…