【无标题】8月17日网络编程作业


1. 将dict.txt的内容导入到数据库中
 

#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
    //打开数据库
    sqlite3 *db = NULL;
    if(sqlite3_open("./my.db", &db) != SQLITE_OK)
    {
        printf("err_code:%d\n", sqlite3_errcode(db));
        printf("errmsg:%s\n", sqlite3_errmsg(db));
        printf("__%d__\n", __LINE__);
        return -1;
    }
    printf("打开成功\n");

    //创建一个表格
    char *sql = "create table if not exists stu (word char, mean char)";
    char *errmsg = NULL;

    if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
    {
        printf("__%d__ sqlite3_exec:%s\n",__LINE__, errmsg);
        return -1;
    }
    printf("表格创建成功\n");
    FILE *fp = fopen("./day1701.c", "r");  //打开存放单词的文件
    if(fp == NULL)
    {
        perror("fopen");
        return -1;
    }
    char buf1[64] = "";
    char buf2[64] = "";
    char buf3[64] = "";
    int res1 = 0, res2 = 0, i = 0, j = 0;
    while(fgets(buf1, sizeof(buf1), fp) != NULL) //读一次,往表格插入一次
    {
        buf1[strlen(buf1)-1] = '\0';  //将最后一位\n换成'\0'
        bzero(buf2, sizeof(buf2));
        bzero(buf3, sizeof(buf3));
        i = 0, res1 = 0, res2 = 0;
        while(buf1[i] != ' ')
        {
            i++;
            res1++;
        }
        for(i=0; i<res1; i++)    //先把单词分离出来
        {
            buf2[i] = buf1[i];
        }
        if(buf1[res1+1] != ' ')
        {
            buf2[res1] = ' ';
            i = res1;
            while(buf1[res1+1] != ' ')
            {
                res1++;
                res2++;  //拼接单词要循环的次数
            }
            res1 = i;
            for(i=0; i<res2; i++)
            {
                buf2[res1+1] = buf1[res1+1];
                res1++;
            }
            strcpy(buf3, buf1+res1+4);
        }else
            strcpy(buf3, buf1+res1+3);

        bzero(buf1, sizeof(buf1));  //单词分离完毕,现在进行插入
        sprintf(buf1,"insert into stu values (\"%s\", \"%s\")", buf2, buf3); //sqlite语句组装完成       
        printf(" :%s %s %s\n",buf1, buf2, buf3);
        if(sqlite3_exec(db, buf1, NULL, NULL, &errmsg) != SQLITE_OK)
        {
            printf("__%d__ sqlite3_exec:%s\n",__LINE__, errmsg);
            return -1;
        }
        //j++;
        //bzero(buf1, sizeof(buf1));

    }
    printf("插入完成\n");

    if(sqlite3_close(db) != SQLITE_OK)
    {
        printf("err_code:%d\n", sqlite3_errcode(db));
        printf("errmsg:%s\n", sqlite3_errmsg(db));
        printf("__%d__\n", __LINE__);
        return -1;
    }

    printf("关闭成功\n");



    return 0;
}
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        
                                                                                                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值