源文件中注释用的是英文,图个方便不用总是转换输入法,不过作者英文渣啊,有错误的地方还请多多包涵
-
使用之前请先修改main.c中刚开始的3个文件位置,具体main.c文件中有描述
也可以不修改,相关文件默认保存在生成的可执行文件夹下. 推荐修改成绝对路径.
可以将生成后的可执行文件复制到/usr/bin/下, 以后可以在任何文件夹下直接运行 -
修改好后可直接编译运行,可用命令'gcc -Wall *.c'命令,
这将生成一个a.out 文件, 不过我们也可以用'gcc -Wall *.c -o <目标文件名>'
来生成想要的文件名; 当然我们 也可以用工程下的makefile来完成编译,在makefile
当前文件夹下使用命令‘make’完成 编译,可执行文件将会生成在当前文件下,为output -
假如我们现在完成了编译工作,生成目标文件a.out, 我们可以用命令‘./a.out’执行
-
运行后将出现‘>>’这样的符号,直接在其后面输入中文或英文,然后回车就可以进行查询了
-
中英文都可以查询,不过中文查询比较渣,用的是遍历,也可能没那么准确
-
自动保存查询到的单词, 如果只想玩玩不想保存,可以这样运行:‘./a.out test’
-
还可以模糊查找,但并不总是管用的,有兴趣的可以完善一下这部分的算法, 比如忘了abandon
怎么写,可以根据读音大概写一下,例如输入abondon后回车,会出现几个相似的答案,其中
就有可能给出了你要的答案 -
如果所查询的词没有找到完全匹配的,那么程序可能会给出not found的提示, 另一种情况是给
出的可能结果不只一种或只给出一种可能的情况,程序会自动标号, 我们可以输入相应的标号保存
我们想要的结果到收藏夹中, 如果可能的结果只有 一种,我们还可以直接输入'.'来保存这个结
果('.'默认保存第一个结果).
-
退出的话直接键入q,然后回车就行啦
-
Ctrl-c其实也是可以滴
-
通过将源文件(包含单词和翻译,如word/下的那个单词文本)读入到内存中,便于将其中英文分离
保存在结构体中,读入后进行排序整理,将首字母相同的单词保存在对应连续的内存空间中 -
将整理好的结构体写入文件.wordbook中,通过比较源文件和.wordbook的修改时间,判断是否重新
生成 .wordbook文件,如果源文件不曾修改,第一次生成.wordbook后将不再读入源文件排序重新生成
(节约时间),而是直接从.wordbook中读取到内存中用于查询 -
模糊查找主要是看对应的位置上字母是否相同,也考虑了单词长度的差异等等,然后通过这些衡量diff的值,
当diff小于一定值的时候将它复制回主函数(保存的需要)并打印出来