代码编织梦想

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


int callBack(void* arg,int ncolumn,char **column_text,char **column_name);
int do_select(sqlite3* db);
int main(int argc, const char *argv[])
{
	//创建并打开数据库
	sqlite3 *db=NULL;
	if(sqlite3_open("./dic.db",&db)!=SQLITE_OK)
	{
		fprintf(stderr,"__%d__ sqlite3_open failed\n",__LINE__);
		return -1;
	}
	printf("sqlite3_open success __%d__\n",__LINE__);


	//创建表格
	char sql[128]="create table if not exists dic(word char,mean char)";
	char *errmsg=NULL;
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		fprintf(stderr,"__%d__ sqlite3_exec failed:%s\n",__LINE__,errmsg);
		return -1;
	}
	printf("table dic create success __%d__\n",__LINE__);

	//打开文件
	FILE *fp=fopen("./dict.txt","r");
	if(NULL==fp)
	{
		perror("fopen");
		return -1;
	}

	//存储数据
	char buf[128]="";
	char word[128]="";
	char mean[128]="";
	int flag=0;

	while(1)
	{
		bzero(buf,sizeof(buf));
		bzero(word,sizeof(word));
		bzero(mean,sizeof(mean));
		if(fgets(buf,sizeof(buf),fp)==NULL)
		{
			break;
		}
		int i=0,j=0,k=0;
		while(buf[k]!='\n')
		{
			if(buf[k]==' ')
			{
				flag++;
			}
			if(flag<2)
			{
				word[i]=buf[k];
				i++;
			}
			else 
			{
				mean[j]=buf[k];
				j++;
			}
			k++;
		}
		flag=0;
		char*errmsg=NULL;
		char sql[128]="";
		sprintf(sql,"insert into dic values('%s','%s')",word,mean);
		if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
		{
			fprintf(stderr,"__%d__ sqlite3_exec failed:%s\n",__LINE__,errmsg);
			return -1;
		}

	}

	do_select(db);


	//关闭数据库,释放内存空间
	if(sqlite3_close(db) !=SQLITE_OK)
	{
		fprintf(stderr,"__%d__ sqlite3_close failed\n",__LINE__);
		return -1;
	}
	printf("sqlite3_close success __%d__\n",__LINE__);
	return 0;
}


//查询相关的回调函数
int callBack(void* arg,int ncolumn,char **column_text,char **column_name)
{
	if(0 == *(int*)arg)
	{
		for(int i=0;i<ncolumn;i++)
		{
			printf("%s\t",column_name[i]);
		}
		putchar(10);
		*(int*)arg=1;
	}
	for(int i=0;i<ncolumn;i++)
	{
		printf("%s\t",column_text[i]);
	}
	putchar(10);

	return 0;
}

//查询
int do_select(sqlite3* db)
{	
	char*errmsg=NULL;
	char sql[128]="select * from dic";
	int flag=0;
	if(sqlite3_exec(db,sql,callBack,&flag,&errmsg)!=SQLITE_OK)
	{
		fprintf(stderr,"__%d__ sqlite3_exec failed:%s\n",__LINE__,errmsg);
		return -1;
	}
	printf("查询成功\n");

}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/k_weihgl/article/details/129675231

Jmeter-取样结果和请求头解释-爱代码爱编程

取样结果: Thread Name:线程组 1-1👉线程组的名称 Sample Start:2020-03-11 11:33:42 CST👉线程开始的时间 Load time:128👉下载时间(毫秒) Connect Time:52👉链接时间(毫秒) Latency:128 Size in bytes:834👉响应体的大小(bytes) Sent byte

WARN 32136 --- [nio-8085-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springfram-爱代码爱编程

报错信息: 2021-09-29 19:00:27.175 WARN 32136 — [nio-8085-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableExcepti

时间格式的转换---全_j-harold的博客-爱代码爱编程

1.日期转时间戳 this.timeChou('2022-10-20') // 输入日期返回时间戳 1666224000000 timeChou(time) { const timeData = new Date(time).getTime() return timeData }  2.时间戳转日期 format(shij

idea出现connected to server错误,是怎么回事?_xqdcx的博客-爱代码爱编程

Using CATALINA_HOME: “D:\下载内容\idea0\Tomcat\apache-tomcat-8.0.38” Using CATALINA_TMPDIR: “D:\下载内容\idea0\Tomcat\ap

2023年法定节假日信息表-mysql-爱代码爱编程

2023年的周末和法定节假日SQL -- MySQL dump 10.13 Distrib 5.7.35, for Win64 (x86_64) -- -- -------------------------------

2023 sictf --- wp-爱代码爱编程

文章目录 Misc签到colorHackergreek_challengeHacker2 Web兔年大吉easypass Cryptoasciibaby_rsaxyPolyRSARRRSS

2023-1-24 刷题情况-爱代码爱编程

最大正方形II 题目描述 图上有一个矩阵,由N*M个格子组成,这些格子由两种颜色构成,黑色和白色。请找到面积最大的且内部是黑白交错(即两个相连的正方形颜色不能相同)的正方形。 输入格式 第一行两个整数N和M,分别表示

mysql 日期函数、时间函数在实际场景中的应用-爱代码爱编程

整理日常业务中用到日期函数的一些场景,并对日期函数按照使用类型做了分类,实例也尽可能符合日常需求。为了方便查阅,可以先看目录,再根据需要看具体方法和实例。 首先明确日期和时间类型有哪些,也就是日期函数括号中的变量类型。 一

2022-爱代码爱编程

一、JS-将时间戳转换成日期格式 // 将时间戳转换成日期格式 function timestampToTime(timestamp) { let d = new Date((timestamp+'').leng

pyload远程代码执行漏洞复现(cve-爱代码爱编程

1、产品简介 pyLoad是一个用 Python 编写的免费和开源下载管理器,可用于NAS、下一代路由器、无头家庭服务器以及任何能够连接到互联网并支持 Python 编程语言的设备。 2、漏洞概述 pyLoad 存在代码注入漏洞,未经身份验证的攻击者可以通过滥用 js2py 功能执行任意 Python 代码 3、影响范围 影响版本: pyLoa