网络编程-day7

电子词典导入数据库

#include <myhead.h>


int main(int argc, const char *argv[])
{
	//打开数据库
	sqlite3 *db;
	if(sqlite3_open("./zd.db", &db) != SQLITE_OK)
	{
		fprintf(stderr, "sqlite3_open: %s %d __%d__\n",\
				sqlite3_errmsg(db), sqlite3_errcode(db), __LINE__);
		return -1;
	}
	printf("sqlite3_open success\n");

	//创建一个表格
	//注意:在数据库中sql语句怎么写,在代码中就怎么写
	//如果不知道代码中的sql语句是否正确,可以粘贴到数据库执行
	char sql[128] = "create table if not exists zz (english char, chinese char);";
	char *errmsg = NULL;
	if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
	{
		fprintf(stderr, "sqlite3_exec:%s __%d__", errmsg, __LINE__);
		return -1;
	}
	printf("create table zz sucess\n");
	
	//打开字典文件
	FILE *fp;
	//以只读的形式打开文件
	if((fp=fopen("./dict.txt", "r")) == NULL)
	{
		perror("fopen error");
		return -1;
	}

	//从文件中取数据
	char buf[128] = "";
	bzero(buf, sizeof(buf));
	fgets(buf, sizeof(buf), fp);
	buf[strlen(buf)-1] = '\0';

	//全字段插入
	for(int i=0; i<sizeof(buf); i++)
	{

		if(buf[i]!=' ' && buf[i+1]==' ')
		{
			//得到一个字符串
			buf[i+1] = '\0';

			sprintf(sql, "insert into zz values ('%s','%s');\n", buf, &buf[i+2]);
			printf("sql=%s\n", sql);

					
		}

	}
	//char *errmsg = NULL;
	if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
	{
		fprintf(stderr, "sqlite3_exec:%s __%d__\n", errmsg, __LINE__);
		return -1;
	}
	printf("insert into zz success\n");


	//关闭文件
	fclose(fp);

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

	return 0;
}

思维导图

猜你喜欢

转载自blog.csdn.net/Lychee_z23/article/details/132677646
今日推荐