중화사전망 - 서예자전 - 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 을 반환합니다
}