求修改注释不到位的地方
#include <stdio.h>#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define WORD 12//定义WORD的值为12
#define STRN 20//定义STRN的值为20
#define ITEM sizeof(struct TItem)//定义ITEM的值为struct TItem;
char cidian[STRN];//定义长度为STRN(20)的字符型数组cidian
typedef struct TItem//给已知数据类型struct起个新名字,叫TItem
{
char word[WORD];//定义字符型数组word,长度为WORD(20)
char mean[STRN];//定义字符型数组mean,长度为STRN(12)
} Item;//新的数据类型名字可为Item
fpos_t lookup(char *word, char *mean)//定义字符型指针word和mean,以mean为条件查找word
{
FILE * fp= 0; Item i;//定义FILE * fp= 0,i的数据类型为Item
int r = 0; p = 0;
if(!word) return 0;
fp= fopen(cidian, "rb");//以二进制只读方式打开数组cidian
if (!fp)//判断文件指针fp是否为空
return 0;//为空则函数结束
while(!feof(fp))//当fp不为空时判断是否结尾,是则进行while函数,否则结束函数
{
fgetpos(fp, &p);
r = fread(&i, ITEM, 1, fp);//统计长度,根据指针移动的长度计算出单词的长度
if(r < 1) break;//如果r<1(读取失败),跳出循环
if(i.word[0] == 0) continue;//
if(strcmp(i.word , word)) continue;
if(mean) strcpy(mean, i.mean );
fclose(fp);//关闭前面打开的流文件fp(cidian)
return p+1;//函数结束,并返回1
}
fclose(fp);//关闭前面打开的流文件fp(cidian)
return 0;//返回0
}
void find()//单词查找函数
{
Item i; fpos_t p = 0;
memset(&i, 0, ITEM);//将地址i中前ITEM个字节用0替换并返回0
printf("请输入单词:"); scanf("%s", i.word );//输入字符串给i.word
p = lookup(i.word, i.mean );//调用函数lookup
if(p==0)
{
printf("字典内没有该单词记录!\n");//如果p=0,输出语句
return;//结束函数
}
printf("释义是:%s",i.mean );//如果p不为0,输出i.mean
}
int main(int argc, char * argv[])//主函数有arge和argv两个参数
{
int cmd = 0;//定义cmd为整形,值为0
if(argc >1)//如果arge>1
strcpy(cidian, argv[1]);//将argv{1}复制到cidian
else//否则
strcpy(cidian, "E:\\单词表.txt");//调用E:\\单词表上的文件
for(;;)
{
printf("\n\
**************************\n\
** 欢迎使用迷你小词典!**\n\
**************************\n\
** 1 - 查询单词 **\n\
** 2 - 新增单词 **\n\
** 3 - 编辑单词 **\n\
** 4 - 删除单词 **\n\
** 5 - 退出字典 **\n\
**************************\n");
cmd = getch() - '0';//输入一个字符给cmd,但是不显示出来
switch(cmd)//对cmd的值进行判断
{
case 1: find(); break;//如果是1,则调用find函数用于查找单词
case 2: append(); break;//如果是2,则电泳append函数用于增加单词
case 3: edit(); break;//如果是3,则电泳edit函数编辑单词
case 4: erase(); break;//如果是4,则调用erase函数删除单词
default: return 0;//都不是则主函数结束
}
}
return 0;
}
[ 本帖最后由 Lazy00Angel 于 2012-12-23 00:10 编辑 ]