중화사전망 - 서예자전 - C 사전에 키 값이 포함되어 있습니다.

C 사전에 키 값이 포함되어 있습니다.

/* 기본 라이브러리 함수 */

# include & ltconio.h & gt

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltstring.h & gt

# szWORD 32 정의

# szSTRN 224 정의

# defineszitem sizeof (structtitem)

Char filedict [SZ strn];

Typedef 구조 항목 {

Char word [SZ word];

Charmean [SZ strn];

} 항목

Fpos_t 찾기 (char *word, char *mean)

{

파일 * f = 0;; 첫 번째 항목

Int r = 0;; Fpos _ t p = 0;;

만약 (! 단어) 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(mean) strcpy(mean, i. mean);

Fclose (f);

P+1을 반환합니다

}

Fclose (f);

0 을 반환합니다

}

Void 추가 (void)

{

첫 번째 항목 파일 * f = 0;; Fpos _ t p = 0;;

Memset(& amp;; I, 0, szitem);

Printf ("한 단어 입력:"); Scanf("%s ",i.word);

P = lookup (예: word, 0);

다음 경우 (p) {

Printf ("이 단어는 사전에 기록되었습니다! \ n ");

반환;

}

Printf ("정의를 입력하십시오. 캐리지 리턴이 끝납니다.");

Fflush (stdin);

게츠 (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, szitem);

Printf ("한 단어 입력:"); Scanf("%s ",i.word);

P = lookup (예: word, 0);

If(p==0) {

Printf ("사전에 이 단어의 기록이 없다! \ n ");

반환;

}

P-;

Memset(& amp;; I, 0, szitem);

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, szitem);

Printf ("한 단어 입력:"); Scanf("%s ",i.word);

P = lookup (예: word, 0);

If(p==0) {

Printf ("사전에 이 단어의 기록이 없다! \ n ");

반환;

}

P-;

Printf ("정의를 입력하십시오. 캐리지 리턴이 끝납니다. (캐리지 리턴은 변경을 중단합니다.):");

Fflush (stdin);

게츠 (i. mean);

If(strstr str, 즉 "abort") {

Printf ("수정이 중단되었습니다! \ n ");

반환;

}

F = fopen(fileDict, "r b+");

Fset pos(f & amp;; P);

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

Fclose (f);

Printf ("항목이 저장되었습니다 \ n");

}

유효하지 않은 질의 (void)

{

첫 번째 항목 Fpos _ t p = 0;;

Memset(& amp;; I, 0, szitem);

Printf ("한 단어 입력:"); Scanf("%s ",i.word);

P = lookup(i.word, i. mean);

If(p==0) {

Printf ("사전에 이 단어의 기록이 없다! \ n ");

반환;

}

Printf ("entry% s \ n interpret ion% s", i.word, i. mean);

}

무효 세트 (무효)

{

Intcmd = 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[])

{

Intcmd = 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';

스위치 (cmd) {

사례 0: set (); 깨뜨리다

사례1:query (); 깨뜨리다

사례 2: append (); 깨뜨리다

사례 3: 편집 (); 깨뜨리다

사례 4: erase (); 깨뜨리다

기본값: 0 을 반환합니다.

}

}

0 을 반환합니다

}