将英文词典dict.txt导入到数据库中

提示:

  1. 打开dict.txt,循环读取每一行。

  1. 将每一行的单词和意思分离,分别存储到字符串中

  1. 组sql语句,将单词和意思插入到数据库中。

#include <stdio.h>
#include <sqlite3.h>
#include <strings.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>

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

    //创建一张表
    char sql[128] = "create table if not exists dict (word char,mean char);";
    char *errmsg = NULL;

    if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){
        fprintf(stderr,"line:%d sqlite3_exec: %s\n",__LINE__,errmsg);
        return -1;
    }
    printf("create table dict success\n");

    //打开文件
    FILE *fd = fopen("./dict.txt","r");

    //文件打开失败
    if(NULL == fd){
        perror("fopen");
        return -1;
    }
    printf("open success\n");

    char buf[128];
    char word[128];
    char mean[128];

    //循环读取每一行内容
    while(1){
        bzero(buf,sizeof(buf));
        bzero(word,sizeof(word));
        bzero(mean,sizeof(mean));

        if(fgets(buf,sizeof(buf),fd) == NULL){
            printf("读取完毕\n");
            return -1;
        }

        buf[strlen(buf)-1] = '\0';
        for(int i = 0;i<buf[i+2];i++){
            if(buf[i] != ' ' && buf[i+1] == ' ' && buf[i+2] == ' '){
                strncpy(word,buf,i+1);
            }
            else if(buf[i] == ' ' && buf[i+1] == ' ' && buf[i+2] != ' '){
                strcpy(mean,buf+i+2);
                break;
            }
        }
        bzero(sql,sizeof(sql));
        sprintf(sql,"insert into dict values(\"%s\",\"%s\");",word,mean);

        if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){
            fprintf(stderr,"line:%d sqlite3_exec: %s\n",__LINE__,errmsg);
            return -1;
        }
    }

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

    //关闭文件描述符
    fclose(fd);
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汉语词典大全txt词库, 基本解释:寝 (寢) qǐn 睡,卧:寝室。寝车。寝宫。安寝。 睡觉的地方:就寝。寿终正寝。 皇家宗庙后殿藏先人衣冠之处,亦指帝王的坟墓:寝庙。陵寝。 停止,平息:其议遂寝(那种议论于是平息)。事寝。 面貌难看:貌寝。 笔画数:13; 部首:宀; 详细解释:寝 寢 qǐn 【动】 (形声。从宀,侵声。本义:睡觉) 同本义 寢,卧也。——《说文》 寝毋伏。——《礼记·曲礼上》 宰于昼寝。——《论语·公冶长》 寡人夜者寝而不寐。——《公羊传·僖公二年》 暮寝而思之。——《战国策·齐策》 元济尚寝。——《资治通鉴·唐纪》 寝必重褥。——明·刘基《诚意伯刘文成公文集》 既同寝。——清·魏禧《大铁椎传》 又如:寝不成寐(睡不着。形容心事重);寝不安席(睡觉不能安予枕席。形容心事重);寝卧(睡眠息止);寝床(睡觉用的床);寝息(睡卧休息);寝衾(泛指睡眠所用之衣物);寝宿(睡卧宿息);寝饭(睡觉和吃饭);寝兴(睡下和起床);寝膳(寝食);寝燕(亦作“寝宴”。睡卧与休息) 卧 成子高寝疾,庆遗于请曰:“子之病革矣。”——《礼记·檀弓》 又如:寝石(卧石,横躺着的石头);寝伏(卧伏);寝兕(卧着的独角犀。常画于帝王车轮上以壮威);寝病(卧病);寝疾(卧病);寝床(躺卧在床上) 搁置。如:寝格(搁置;阻碍);寝遏(搁置;阻止);寝阁;寝置(犹搁置) 停止。如:寝谋(停止谋划,停止施行计划);寝罢(废除;停止);寝废(停止;废弃;废除) 平息。如:寝兵(息兵;停止战争);寝事(息事、完事) 罢免。如:寝免(罢免;免去);寝停(停罢。免职);寝夺(罢免;免除) 寝 寢 qǐn 【名】 寝室、卧室 无东西厢有室曰寝。——《尔雅·释宫》 然后适小寝。——《礼记·玉藻》 又如:寝户(寝门。内室的门);寝所(犹寝室,住所);寝幄(卧室内的帷帐);寝殿(帝王的寝宫,卧室);寝斋;寝庐(住房) 君王的宫室 宫人掌王之六寝之修。——《周礼·官人》 宗庙藏祖先衣冠的后殿 寝成孔安。——《诗·商颂·殷武》 帝王陵园的正殿 执爵于太寝。——《礼记·月令》 又如:寝阙(陵墓);寝殿(陵墓的正殿);寝堂(帝王陵墓的正殿);寝陵(帝王的陵墓) 寝 寢 qǐn 【形】 丑陋 不以鄙陋寝容。——《吴越春秋·勾践阴谋外传》 貌寝陋,不能远视。——《新唐书·郑注传》 貌甚寝。——清·魏禧《大铁椎传》 武安者,貌寝。——《史记·魏其安侯传》。韦昭曰:“短小也,丑恶也。” 又如:寝小(丑陋矮小);寝陋(容貌丑陋);寝侻;寝容(容貌丑陋) 寝 寢 qǐn 【副】 逐渐。如:寝坏(逐渐废弃;逐渐败坏);寝繁(逐渐繁多);寝饿(越来越饿) 寝车 qǐnchē 火车上带有床辅的车厢。即“卧车车厢”

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值