代码编织梦想

txt文档格式不标准,无需分为三列,仅分为两列即可

#include <stdio.h>
#include <string.h>
#include <sqlite3.h>
#include <stdlib.h>

int main(int argc, const char *argv[])
{
	//读取txt文件到数据库
	FILE* fp = fopen("./dict.txt", "r");  //只读方式打开txt文件
	if(NULL == fp)
	{
		perror("fopen");
		return -1;
	}
	//创建并打开数据库
	sqlite3* db = NULL;
	if(sqlite3_open("./dict.db", &db) != SQLITE_OK)
	{
		fprintf(stderr, "__%d__ sqlite3_open : %d | %s\n", __LINE__, sqlite3_errcode(db), sqlite3_errmsg(db));
		return -1;
	}
	printf("sqlite3_open sucess __%d__\n", __LINE__);

	//创建表格,[数据库中代码怎么写,此处就怎么写]
	char sql[128] = "create table if not exists dictionary (word char, mean char);";
	char *errmsg = NULL;
	if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
	{
		fprintf(stderr, "__%d__ sqlite3_exec : %s\n", __LINE__, errmsg);
		return -1;
	}
	printf("table dictionary create sucess __%d__ \n", __LINE__);

	//读取txt文件中的字符串
	char buf[128] = "";
	char buf_word[32] = "";  //英文单词
	char buf_prop[32] = "";  //词性
	char buf_mean[32] = "";  //单词释义
	char* p_temp = NULL;
	while(1)
	{
		bzero(buf, sizeof(buf));
		bzero(buf_word, sizeof(buf_mean));
		bzero(buf_mean, sizeof(buf_mean));
		if(fgets(buf, sizeof(buf), fp) == NULL)  //遇到换行会停止读取,并自动补\0
		{
			break;  //读取结束,fgets返回值为NULL
		}
		//写入到数据库中
		p_temp = buf;
		int i = 0;
		int j = 0;
		//printf("%s\n", buf);
		//sleep(1);
		//将读取到的一整串字符串分开
		while(1)
		{
			if(*p_temp == ' ' && *(p_temp+1) == ' ')  //满足此条件停止单词的读取
			{
				//词性的寻找
				while(1)
				{
					p_temp++;
					if(*p_temp != ' ')
						break;
				}
				break;
			}
			buf_word[i] = *p_temp;
			i++; p_temp++;
		}
		strcpy(buf_mean, p_temp);
		buf_mean[strlen(buf_mean)-1] = 0;
		//sleep(1);
		//printf("%d==%s  %s\n",__LINE__, buf_word, buf_mean);

		//此时已经可以循环分解开单词和词性以及释义
		//写入到数据库中
		char temp[128] = "";
		sprintf(temp, "insert into dictionary values (\"%s\", \"%s\");", buf_word, buf_mean);

		char* errmsg = NULL;
		sqlite3_exec(db, temp, NULL, NULL, &errmsg);
	}

	//关闭数据库,释放内存空间
	if(sqlite3_close(db) != SQLITE_OK)
	{
		fprintf(stderr, "__%d__ sqlite3_close: %d | %s\n", __LINE__, sqlite3_errcode(db), sqlite3_errmsg(db));
		return -1;
	}
	printf("sqlite3_close sucess __%d__\n", __LINE__);

	//关闭fopen打开的英文单词只读文件
	fclose(fp);
	return 0;
}

生成的数据库示例
在这里插入图片描述
在这里插入图片描述

c语言调用sqlite3数据库_kelly_f2018的博客-爱代码爱编程_c调用sqlite3

1 先包含头文件 #include <sqlite3.h> 2 打开一个数据库 int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */

ubuntu下c语言调用sqlite3数据库实现增删查改_i_t_i的博客-爱代码爱编程

ubuntu下C语言调用sqlite3数据库实现增删查改 Ubuntu下安装sqlite3数据库以及使用 $ sudo apt-get install sqlite3 //安装命令 $ sqlite3 --version

C语言对sqlite数据库的操作-爱代码爱编程

目录 sqlite的安装sqlite的基本命令C语言使用API函数操作sqlite数据库在嵌入式开发中,有时会需要用到数据库对批量数据进行管理,但是常见的数据库如mysql 、SQL Server、Oracle、Sybase、DB2消耗的资源相对于嵌入式系统太过巨大,通常无法在嵌入式系统上运行,因此在嵌入式开发中往往用到sqlite数据库 sqlite

使用C语言操作sqlite3-爱代码爱编程

1.对数据库打开操作: SQLITE_API int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 参数 : 你要打开的文件名,文件名是一个字符串,需要" " 数

Linux下c语言编程操作sqlite3数据库-爱代码爱编程

Linux下c语言编程操作sqlite3数据库 1. 安装数据库 我们从sqlite官网下载页面,https://www.sqlite.org/download.html从源代码区下载 sqlite-autoconf-*.tar.gz。 然后在Linux下安装sqlite3 liguangming@ubuntu-14:~/sqlite$ wget htt

linux下c语言数据库编程,在Linux下用C语言操作数据库sqlite3(建立数据库)-爱代码爱编程

0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库、创建表格、插入数据、查询数据、删除数据等。 1. 说明 这里我们假设你已经编译好了sqlite的库文件 : libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.

sqlite3 c语言编程,sqlite3的C语言使用(三)-爱代码爱编程

估计这是sqlite系列最后一篇,sqlite的基本功能这一篇写完了就应该差不多了,不过还有更多高级功能大家可以自己去发现。上一篇 我们今天目标是写一个程序,把我们的字典文件pass.txt中的所有密码导入数据库中。我们的pass.txt中有93K多的数据行数,我们可以通过这个程序来测试sqlite的速度。 像往常一样,先建立一个sqlite3

sqlite c语言api 实例,sqlite3数据库c语言常用接口应用实例-爱代码爱编程

#include /*************************** typedef int (*sqlite3_callback)( void*, // Data provided in the 4th argument of sqlite3_exec() int, // The number of columns in row cha

【sqlite的C语言访问接口】执行SQL语句的接口------sqlite3_exec回调函数的使用-爱代码爱编程

sqlite3_exec的函数原型: int sqlite3_exec( sqlite3 *pDb, const char *sql, int (*callback)(void *arg, int col, char **str, char **name), void *arg, char **errmsg ) 参数说明: pDb:打开数据库的句柄

C语言操作SQLite-爱代码爱编程

1 下载源代码 采用C语言操作SQLite数据库时需要引入sqlite3库,我们可以在官网下载源代码后编译。 2 C代码-不用回调函数执行SQL语句 #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> int main(void){

linux c 实现sqlite3数据库的基本操作_玖尾猫的博客-爱代码爱编程

一、数据库简介         SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头了. SQLite也迎来了一个版本 SQLite 3已经发布.             SQLite是一款轻型的数据库,是遵守ACID的关系式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,

嵌入式数据库-sqlite3的基本指令及用c语言操作数据库_柠檬你个思密达i!的博客-爱代码爱编程

SQLite简介:  轻量化,易用的嵌入式数据库,用于设备端的数据管理,可以理解成单点的数据库。 传统服务器型数据 库用于管理多端设备,更加复杂。SQLite是一个无服务器的数据库,是自包含的。这也称为嵌入式数据库,这意味着数据库引擎作为应用程序的一部分运行。  与MySQL的区别: MySQL需要运行服务器,MySQL将需要客户端和服

c语言实现sqlite3创建表格,插入数据,查看数据_haiqinyanan的博客-爱代码爱编程

C语言实现sqlite3创建表格,插入数据,获取数据 文章目录 C语言实现sqlite3创建表格,插入数据,获取数据1-接口API2-sqlite3_open()3-sqlite3_exec()4-sqlite3_

c语言实现将一句话的单词进行逆序(图文辅助理解)_bluescholar的博客-爱代码爱编程

 如图,本题要求将一句话中的单词进行倒叙 i like beijing. 可以考虑将其分成两步 第一步:先将每个单词倒置    即:    i ekil .gnijieb 第二步:将整个字符串倒置     即: beijing. like i 也可以先将整个字符串倒置,再将每个单词倒置; 但这两种方法,都需要一个函数来实现倒置的功能

c语言中sqlite3的使用方法_离沫的博客-爱代码爱编程

        在学习完tcp通信之后又了解了sqlite3的的功能,以及c语言中sqlite3的使用方法,接下来我将介绍c语言中sqlite3的使用方法。         首先需保证机器上已经有SQLITE库,下图是在虚拟机上安装过程          安装好SQLITE库后就可以使用sqlite命令语句。例如: 1.sqlite3_open

qt/c语言 实现数据库sqlite3-爱代码爱编程

QT/C语言 实现数据库sqlite3 【1】引入数据库【2】下载移植sqlite31.移植sqlite32.使用sqlite33.sqlite3中的数据类型4.常用的SQL语句(全部都是分号结尾)(1)新建表格(2

c语言操作 sqlite3数据库函数-爱代码爱编程

一、打开数据库 函数 int sqlite3_open(char *path,sqlite3 **db) path : 数据库文件的路径 db : 指向sqlite句柄的指针 返回值 :成功返回 0,失败返回错误代码 //打开数据库文件,如果没有就创建,在数据库文件当中再创建表格,保存数据 二、

常见软件-爱代码爱编程

使用背景 最近在研究Wazuh的时候,发现服务端默认也使用了sqlite,原以为只有嵌入式使用,其实在这种本地化的软件中,使用sqlite也是一种很好的选择,至少软件的依赖性就少了很多,sqlite可以直接编译到产品中,不