DAY41

本文介绍了一个C++程序,它使用SQLite数据库操作,创建表并从dict.txt文件中读取单词和其解释,实现数据插入。
摘要由CSDN通过智能技术生成
#include<th.h>
#include<sqlite3.h>

#define ERR_MSG(msg) do{\
	fprintf(stderr,"__%d__",__LINE__);\
	perror(msg);\
}while(0)



int do_insert(sqlite3 * db,char * word,char * paraphrase)
{
	char sql[123] = "";
	sprintf(sql,"insert into stu values (\"%s\",\"%s\")",word,paraphrase);
	char * errmsg = NULL;
	if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
		return -1;
	}

	return 0;
}


int main(int argc, const char *argv[])
{
	sqlite3 * db;
	if(sqlite3_open("./sq.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");


	char sql[123] = "create table if not exists stu (words char, paraphrase char);";
	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("create table stu success\n");

	FILE * fp = fopen("./dict.txt","r");
	if(fp == NULL)
	{
		ERR_MSG("fopen error");
		return -1;
	}

	char buf[123] = "";
	int i = 0;
	int j = 0;
	char word[50] = "";
	char paraphrase[50] = "";

	while(fgets(buf,sizeof(buf),fp) != NULL)
	{
		bzero(word,sizeof(word));
		bzero(paraphrase,sizeof(paraphrase));
		for(i = 0; i < sizeof(buf); i++)
		{
			if(buf[i] == '.')
			{	int fd;
	if(fd = open("dict.txt",O_RDONLY) == -1)
	{
		ERR_MSG("open error");
		return -1;
	}

				for(j = i - 1; j > 0; j--)
				{
					if(buf[j] == ' ')
					{
						buf[j - 1] = 0;
						break;
					}
				}
			}
		}
		sprintf(word,"%s",buf);
		sprintf(paraphrase,"%s",buf + j);
		
		if(do_insert(db,word,paraphrase) < 0)
		{
			break;
		}
		bzero(buf,sizeof(buf));
	}

	if(sqlite3_close(db) != SQLITE_OK)
	{
		return -1;
	}
	printf("close success\n");


	return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
明日问题的输入事件与输出事件为: | Input Events | Node Output Event description Node . e0: start program event 1 e7: Welcome message 2 e1: center a valid month 6e8: print today's date 4 e2: enter an invalid month 67| e9: print tomorrow's date 6 e3: enter a valid day 69 e10: "month OK" 39 e4: enter an invalid day 69 e11: "month out of range" 41 e5: enter a valid year 71 e12: "day OK" 4 e6: enter an invalid year 71 e13: "day out of range" 4S e14: "year OK" 54 e15: "year out of range" 5( e16: "Date OK" 6C e17: "please enter a valid date" 62 e18: "enter a month" 6( e19: "enter a day" 68 e20: "enter a year" 70 c21: "Day is month, day, year" 8S 在下表中,ASF-6对应的输入事件为: 输出事件 ASF-7对应的输入事件为: 输出事件 为:_ ASF-8对应的输入事件为:_, 输出事件 为:_ ASF-9对应的输入事件为:_,输 出事件 为:_ Atomic System Function Inputs Outputs L ASF-1 start program e0 e7 | ASF-2 enter a date with an invalid month, valid day and valid year e2, e3,e5 e11,e12,e14,e17 | ASF-3 enter a date with an invalid day, valid month and validyear| e1, c4,e5 e10,e13,e14,e17 | ASE-4 enter a date wih an ivalid year, valid day and valid monh| el,e3, c6 e10,e12, el5,e17| ASF-5 enter a date with valid month, day, and year e1,e3,e5 . e10, e12, e14, e16, c21 | ASIF-6 enter a date with valid month, day and year invalid ASF-7 enter a date with valid day, month and year invalid ASF-8 enter a date with valid year, day and month invalid ASF-9 enter a date with invalid month, day, year
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

也许t

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值