Network programming day7 homework

Import dictionary into database

#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;
}

mind Mapping:

Guess you like

Origin blog.csdn.net/m0_59031281/article/details/132676544