网络编程day7作业

2023-11-12

将词典导入数据库

#include <myhead.h>
#define ERR_MSG(msg) do{\
	fprintf(stderr,"__%d__",__LINE__);\
	perror(msg);\
}while(0)
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("./eng.db",&db)!=SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_open:%s %d __%d__",\
				sqlite3_errmsg(db),sqlite3_errcode(db),__LINE__);
		//sqlite3_errmsg打印错误信息
		//sqlite3_errcode打印错误码
		return -1;
	}
	printf("sqlite3_open success\n");
	//创建一个表格 create table stu(id int,name char,score float);
	//注意:在数据库中怎么写代码里就这么写
	//如果不知道代码中是否正确,可以粘贴到数据库中执行
	char *ptr="create table if not exists eng(id int,word char,mean char);";
	char *errmsg=NULL;
	if(sqlite3_exec(db,ptr,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s __%d___\n",errmsg,__LINE__);
		return -1;
	}
	printf("create table stu success\n");
	char choose;
	char xt;
	while(1)
	{
		system("clear");
		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;
			break;
		default:
			printf("输入错误,请重新输入\n");
		}
		printf("输入任意字符清屏:");
		scanf("%c",&xt);
		while(getchar()!=10);	
	}
END:
	//关闭数据库
	if(sqlite3_close(db)!=SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_close:%s %d __%d__",\
				sqlite3_errmsg(db),sqlite3_errcode(db),__LINE__);
		//sqlite3_errmsg打印错误信息
		//sqlite3_errcode打印错误码
		return -1;
	}
	printf("sqlite3_close success\n");
	return 0;
}
//插入数据
int do_insert(sqlite3 *db)
{
	FILE *fp;
	if((fp=fopen("./dict.txt","r"))==NULL)
	{
		ERR_MSG("fopen");
		return -1;
	}
	char buf[128]="";
	char word[128]="";
	char mean[128]="";
	char sql[128]="";
	int id=1;
	char *b=buf;
	char *w=word;
	char *m=mean;
	char *errmsg=NULL;
	while(1)
	{
		bzero(buf,sizeof(buf));
		bzero(word,sizeof(word));
		bzero(mean,sizeof(mean));
		b=buf;
		w=word;
		m=mean;
		if(fgets(buf,sizeof(buf),fp)==NULL)
		{
			break;
		}
		buf[strlen(buf)-1]='\0';
		//判断是否是英文
		while(*b!=' '||*(b+1)!=' ')
		{
			*(w++)=*(b++);
		}
		b+=3;
		//获取中文释义
		while(*b!='\0')
		{
			*(m++)=*(b++);
		}
		sprintf(sql,"insert into eng values(%d,\"%s\",\"%s\");",id++,word,mean);
		if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
		{
			fprintf(stderr,"sqlite3_exec:%s %d",errmsg,__LINE__);
			return -1;
		}
	}
	printf("insert success\n");
	fclose(fp);
	return 0;
}

思维导图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络编程day7作业 的相关文章

  • java内存不足然后退出

    我有一个必须分析大文件的软件 限制输入或提供无限内存都不是一个选择 所以我必须忍受飞行的 OOME 因为 OOME 只杀死线程 所以我的软件运行在一些糟糕的状态 从外面看一切都很好 因为进程正在运行 但在内部却是脑死亡 我想拔掉它的插头 但
  • R 版本 4.0.0 上的 ROracle

    当尝试使用 ROracle 时 我收到以下错误消息 gt library ROracle Error package or namespace load failed for ROracle package ROracle was inst
  • Eclipse 找不到 javaw.exe

    当我启动 eclipse 时 我遇到这个问题 javaw exe在我的电脑中的位置是C Program Files Java jre7 bin 我尝试更改路径环境变量 然后出现不同的错误 例如 JRE 更新到 jre1 8 0 111 后
  • 检查行中是否有单调递增的值

    我正在寻找一种方法来检查表中的值是否针对特定的行子集单调递增 该表包含列 id name meas date 和 value 对于具有相同名称的所有行 应按 meas date 对行进行排序 并且需要检查这些排序行的值列是否单调递增 因此
  • 计算Oracle中逗号分隔字符串中的元素数量

    假设我有一张桌子Col2是 varchar Col1 Col2 1 001 002 2 003 004 005 我需要计算 Col2 中的元素数量 并返回它 如果我这样做的话 select do something here with co
  • Python、Oracle DB、列中的 XML 数据,获取 cx_Oracle.Object

    我正在使用 python 从 Oracle DB 获取数据 所有行都有一个包含 XML 数据的列 当我使用 python 打印从 Oracle DB 获取的数据时 包含 XML 数据的列将打印为 0x7fffe373b960 处的 cx O
  • 带触发器的物化视图?

    我可以在物化视图上创建触发器吗 我用的是甲骨文10g 是的你可以 请小心 这是什么Oracle 文档 http download oracle com docs cd B19306 01 server 102 b14200 statemen
  • 如何使用 SQLPLUS 假脱机到 CSV 格式的文件?

    我想将一些查询提取为 CSV 输出格式 不幸的是 我无法使用任何奇特的 SQL 客户端或任何语言来做到这一点 我必须使用SQLPLUS 我该怎么做 您还可以使用以下内容 尽管它确实在字段之间引入了空格 set colsep separate
  • C# 中强制关闭 oracle 连接

    我有一个报告窗口 显示从可能长时间运行的 Oracle 存储过程返回的结果 我的问题是 当用户关闭窗口时 与 Oracle 的连接保持打开状态 并且可能长时间运行的报告不会被取消 关闭打开的连接的唯一方法是 DBA 手动终止它们或用户退出整
  • 物化视图中完全刷新和快速刷新有什么区别?

    我在自己的模式中有物化视图 物化视图源是另一个模式表 但是 这个主表有 900 行 我在这个主表上做了一些 dml 操作 之后我将刷新这个物化视图 正如你所知 我做了一些研究 我如何刷新我自己的物化视图 它说 你可以进行完全刷新或快速刷新
  • where 子句中忽略空白字符

    我做了以下事情 create table test col char 10 insert into test values hello select from test where col hello 有人建议我上面的内容不应返回任何结果
  • Oracle SQL - 如何使用 RANK() 或 DENSE_RANK() 和 ROW_NUMBER() 分析函数获取不同的行?

    我希望获得每个部门前 3 名不同的薪资 我能够使用RANK or DENSE RANK or ROW NUMBER 但我的表有一些工资相同的记录 下面提到的是我的查询及其结果 20部薪资前三名应该是6000 3000 2975 但是有 2
  • 在 Oracle 过程中实现多线程

    我正在研究 Oracle 10gR2 这是我的问题 我有一个程序 我们称之为 proc parent 在包内 应该调用另一个过程 让我们调用它 用户创建 我得打电话 用户创建 在一个循环中 它从表中读取一些列 并且这些列值作为参数传递给 用
  • JVM 最大堆大小可以是动态的吗?

    JVM Xmx 参数允许将 JVM 的最大堆大小设置为某个值 但是 有没有办法让这个价值动态化呢 换句话说 我想告诉 JVM 看 如果你需要它 就继续从系统中获取 RAM 直到系统退出 提问原因分为两部分 首先 所讨论的应用程序可以根据用户
  • 关于pl/sql存储程序文本的问题

    我使用 TOAD 进行 PL SQL 开发 在 TOAD 中 当我输入过程名称并按 f4 时 我可以看到该过程的源代码 我认为 TOAD 从 v sqltext 视图获取源代码 为了证实我的想法 我写了一个查询 select from v
  • 无法在 .NET 中加载 Oracle.DataAccess 的文件或程序集

    当我尝试运行一个简单的程序来访问 oracle 时 我收到此消息 无法加载文件或程序集 Oracle DataAccess 版本 2 111 7 20 文化 中性 PublicKeyToken 89b483f429c47342 或其依赖项之
  • Oracle存储过程使用数组作为表插入的参数

    我一直在寻找一个明显的例子 但没有运气 抱歉 如果已经回答了 我正在尝试做一些非常简单的事情 一个存储过程 它将获取输入并将它们插入到表中 我希望它获取多行数组并一次全部插入 我认为这很简单 但我还没有找到一个可以展示我的例子 在很多例子中
  • 替换 Oracle 包的一部分

    我需要修改包内的一个过程 我需要接触声明和实施 由于我正在维护每次修改的补丁文件 因此我希望更改最小化 我可以仅使用更改的过程更新包 如果是 如何更新 还是需要提供完整的包定义和实现 您需要替换整个包规范和主体 您不能仅对包的一部分进行操作
  • 使用Powershell访问远程Oracle数据库

    我需要能够连接到我的网络上基于 Windows 7 的 Oracle 服务器 32 位 Oracle XE 我需要连接的机器运行 Windows 7 64 位 两台机器上都安装了 Powershell 我已在 64 位计算机上安装了 Ora
  • 如何在 Hibernate 中自动递增复合主键中的 Id?

    我有一个带有复合主键的表 groupId and batchId 实体类看起来像 Entity name EMPLOYEE public class Employee EmbeddedId private EmployeePK employ

随机推荐

  • Libvrit热添加/删除CPU/MEM

    默认用virt manager创建的虚拟机不能直接动态添加删除CPU 需要先修改配置 关闭虚拟机后再开启生效 virsh setvcpus client1043 8 config maximum 然后关闭虚拟机后 再开机就可以随意热添加删除
  • 【博客698】为什么当linux作为router使用时,安装docker后流量转发失败

    为什么当linux作为router使用时 安装docker后流量转发失败 场景 当一台linux机器作为其它服务器的router 负责转发流量的时候 让你在linux上安装docker之后 就会出现流量都被drop掉了 原因 没装docke
  • 卷积操作代码举例————PyTorch

    哔哩大学的PyTorch深度学习快速入门教程 绝对通俗易懂 小土堆 的P17讲讲述了卷积操作的举例使用 首先 要做的效果如图 一个很简单的输入图像 卷积核首先和输入图像左上角33对齐 然后对应格子相乘 再9个格子相加 即1 22 0 1 如
  • MATLAB BP神经网络预测算法

    内容 BP神经网络是一种多层前馈网络 可以进行学习和存储输入输出映射关系 不需要建立数学方程式 BP神经网络预测算法预测序号15的跳高成绩 下表是国内男子跳高运动员各项素质指标 P 3 2 3 2 3 3 2 3 2 3 4 3 2 3 3
  • [洛谷] [NOIP2018 提高组] 旅行 加强版 - 基环树

    题目链接 https www luogu com cn problem P5049 题目描述 小 Y 是一个爱好旅行的 OIer 她来到 X 国 打算将各个城市都玩一遍 小Y了解到 X国的 n 个城市之间有 m 条双向道路 每条双向道路连接
  • d3dcompiler_43.dll缺失怎么修复方法_d3dcompiler43dll丢失怎么解决

    懂电脑的人都知道 dll文件是电脑运行各种程序的根本 少了它的话无论什么软件 游戏都运行不了 但是dll文件又并不只有一种 其中最常丢失的是这款d3dcompiler 43 dll文件 这款文件是运行电脑系统的关键 也是运行电脑上常用程序的
  • Go 语法 变量

    文章目录 简介 一些语法 go 数据类型 demo code 简介 go的一个思想 一个问题尽量只有一个解决方案是最好的 go 中函数是第一等元素 studygolang com pkgdoc go build src go 编译 go r
  • Vulkan同步机制和图形-计算-图形转换的风险(一)

    在现代渲染环境中 很多情况下在一个数据帧期间会产生计算负荷 在GPU上计算通常 非固定功能 是并行编程的 通常用于具有挑战性 完全不可能或仅通过标准图形管道 顶点 几何 细化 栅格 碎片 实现的效率低下的技术 一般情况下 计算在实现技术方面
  • scrollIntoView() 方法实现元素滚动

    TOC scrollIntoView 方法实现元素滚动 element scrollIntoView Element 接口 dom元素 的 scrollIntoView 方法会滚动元素的父容器 使被调用 scrollIntoView 的元素
  • python更多语法

    本文译自https docs python org 2 7 tutorial 完全是出于个人兴趣翻译的 请勿追究责任 另外 谢绝商业牟利 刊印请与本人和原作者联系 无授权不得刊印 违者必究其责任 如需转发 请注明来源 并保留此行 尊重本人的
  • Mac环境下配置JAVA_HOME

    Mac环境下配置JAVA HOME 1 下载JDK版本 JDK官方下载地址 Java下载地址 下载旧版本需要注册oracle用户 下载jdk 12 0 2 osx x64 bin dmg并点击安装 嫌浏览器下载慢的可以把下载地址粘贴到迅雷中
  • Tomcat配置HTTPS访问

    在tomcat中存在两种证书验证情况 1 单向验证 2 双向验证 1 tomcat单向认证 服务器端会提供一个公开的公钥 每一个访问此服务器的客户端都可以获得这个公钥 此公钥被加密后 服务器端可以进行解密处理 之后验证是否配对 配置 在此次
  • postgresql使用UUID函数gen_random_uuid()

    PostgreSQL 13版本前不提供生成UUID数据的内置函数 如果需要使用UUID数据 可通过创建外部扩展 uuid ossp或 pgcrypto生成 UUID数据 PostgreSQL 13 新增gen random uuid 内置函
  • 下载JDK并配置JDK环境变量

    1 下载JDK8或者JDK11 1 点击链接进入官网下载页面 https www oracle com java technologies downloads java8 下拉页面一直到下载的地方 在这里可以选择是下载JDK8还是JDK11
  • 判断某个数组是否包含在另一个数组中

    判断b数组是否包含在a数组中 function isContained a b if a instanceof Array b instanceof Array return false if a length lt b length re
  • 打开cmd闪退

    我们在使用电脑过程中一般会很少用到cmd命令 CMD命令窗口在一些特殊情况时我们会用到 如PING下看网络通不通 在CMD窗口里运行命令如磁盘格式转换 但是有些朋友遇到了这样的问题 在开始运行输入CMD回车后 CMD命令黑框框出来闪一下就消
  • 使用“VMware ThinApp”绿化软件

    当我看到 WPS Office 在我的电脑中写入了上万条注册表项时 我几乎要崩溃了 这个 有点太多了吧 软件绿化工具 环境 Workstation 15 5 Player for Windows 绿化软件 VMware ThinApp 软件
  • 纹波电压

    什么是纹波电压 狭义上的纹波电压 是指输出直流电压中含有的工频交流成分 直流电压本来应该是一个固定的值 但是很多时候它是通过交流电压整流 滤波后得来的 由于滤波不彻底 就会有剩余的交流成分 下图为1 8V的纹波电压 纹波电压是如何产生的 首
  • 2022年Python笔试选择题及答案(秋招)

    2022年Python笔试选择题及答案 秋招 单选题 1 以下关于 Python 的描述错误的是 A Python 的语法类似 PHP B Python 可用于 Web 开发 C Python 是跨平台的 D Python 可用于数据抓取
  • 网络编程day7作业

    将词典导入数据库 include