當前位置:成語大全網 - 書法字典 - c字典

c字典

/*基本庫函數*/

# include & ltconio.h & gt

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltstring.h & gt

#定義szWORD 32

#定義szSTRN 224

# define szITEM sizeof(struct TItem)

char fileDict【SZ strn】;

typedef結構項{

char word【SZ word】;

char mean【SZ strn】;

}項;

fpos_t查找(char *word,char *mean)

{

文件* f = 0;第壹項;

int r = 0;fpos _ t p = 0;

如果(!word)返回0;

f = fopen(fileDict,“Rb“);

如果(!f)返回0;

而(!feof(f))

fgetpos(f & amp;p);

r = fread(& amp;I,szITEM,1,f);

if(r & lt;1)破位;

if(I。word【0】= = 0)繼續;

if(strcmp(I。word,word))繼續;

if(均值)strcpy(均值,即均值);

fclose(f);

返回p+1;

}

fclose(f);

返回0;

}

無效追加(無效)

{

第壹項;文件* f = 0;fpos _ t p = 0;

memset(& amp;I,0,SZ item);

Printf(“請輸入壹個單詞:“);scanf(“% s“,I。word);

p = lookup(I。word,0);

如果(p ){

Printf(“這個詞已經被記錄在字典裏了!\ n ");

返回;

}

Printf(“請輸入定義並按enter結束:“);

fflush(stdin);

gets(I。mean);

f = fopen(fileDict,“ab“);

fwrite(& amp;I,szITEM,1,f);

fclose(f);

Printf(“條目已添加\ n“);

}

無效擦除(無效)

{

第壹項;文件* f = 0;fpos _ t p = 0;

memset(& amp;I,0,SZ item);

Printf(“請輸入壹個單詞:“);scanf(“% s“,I。word);

p = lookup(I。word,0);

if(p = = 0 ){

Printf(“字典裏沒有這個詞的記錄!\ n ");

返回;

}

p-;

memset(& amp;I,0,SZ item);

f = fopen(fileDict,“r b+“);

fset pos(f & amp;p);

fwrite(& amp;I,szITEM,1,f);

fclose(f);

Printf(“條目已刪除\ n“);

}

無效編輯(無效)

{

第壹項;文件* f = 0;fpos _ t p = 0;

memset(& amp;I,0,SZ item);

Printf(“請輸入壹個單詞:“);scanf(“% s“,I。word);

p = lookup(I。word,0);

if(p = = 0 ){

Printf(“字典裏沒有這個詞的記錄!\ n ");

返回;

}

p-;

Printf(“請輸入定義並按enter結束(按enter abort放棄修改):“);

fflush(stdin);

gets(I。mean);

if(strstr(即“abort”))

Printf(“修改中止!\ n ");

返回;

}

f = fopen(fileDict,“r b+“);

fset pos(f & amp;p);

fwrite(& amp;I,szITEM,1,f);

fclose(f);

Printf(“條目已保存\ n“);

}

無效查詢(無效)

{

第壹項;fpos _ t p = 0;

memset(& amp;I,0,SZ item);

Printf(“請輸入壹個單詞:“);scanf(“% s“,I。word);

p =查找(i.word,I。mean);

if(p = = 0 ){

Printf(“字典裏沒有這個詞的記錄!\ n ");

返回;

}

Printf(“條目% s \ n解釋% s“,i.word,I。mean);

}

無效集(無效)

{

int cmd = 0;

Printf(“當前詞典是%s,是否需要更改它(選擇Y或Y進行更改)?”,fileDict);

cmd = getch();

if(cmd = =‘Y‘| | cmd = =‘Y‘){

Printf(“請輸入詞典文件名(包括路徑):“);

scanf(“% s“,fileDict);

Printf(“設置成功!\ n ");

}

}

int main(int argc,char * argv【】)

{

int cmd = 0;

if(argc & gt;1)

strcpy(fileDict,argv【1】);

其他

strcpy(fileDict,“c:\ \ dict . txt“);

/*end if*/

for(;;) {

printf(“\ n \

*********************\n\

* *歡迎使用迷妳詞典!**\n\

*********************\n\

** 0集詞典**\n\

* * 1-查詢術語**\n\

* * 2-新條目**\n\

* * 3-編輯條目**\n\

* * 4-刪除條目**\n\

* * 5-退出字典**\n\

* * * * * * * * * * * * * * * * * * * * * \ n“);

cmd = getch()-“0”;

開關(指令){

情況0:set();打破;

案例1:query();打破;

情況二:append();打破;

情況三:edit();打破;

情況四:erase();打破;

默認值:返回0;

}

}

返回0;

}