c diccionario

/*Funciones básicas de la biblioteca*/

# include ltconio.h gt

# include ltstdio.h gt

# include ltstdlib.h gt

# incluir ltstring.h gt

#definir szWORD 32

#definir szSTRN 224

# definir szITEM sizeof (struct TItem)

char fileDict【SZ strn】;

elemento de estructura typedef{

char word【SZ word】;

char mean【SZ strn】;

}Artículo;

búsqueda fpos_t (char *palabra, char *media)

{

Archivo * f = 0; ;

int r = 0; fpos_t p = 0;

si (!word) devuelve 0

f = fopen(fileDict, "Rb ") ;

si (!f) devuelve 0;

mientras (!feof(f))

fgetpos(f amp;p);

p>

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

if(r lt;1) bit roto;

if(I .word[0 】= = 0) continuar

if (strcmp (I. palabra, palabra)) continuar

if (media) strcpy (media, es decir, media);

fclose(f);

Devolver p 1;

}

fclose(f);

Devuelve 0;

}

Anexo no válido (nulo)

{

Primer elemento; archivo* f = 0; p = 0;

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

Printf("Ingrese una palabra: "); scanf("s",I.word );

p>

p = lookup(I.word, 0);

if (p) {

Printf("Esta palabra tiene ¡se ha registrado en el diccionario!\n ");

Return;

}

Printf ("Ingrese la definición y presione Enter para finalizar: ") ;

fflush( stdin);

obtiene(I. media);

f = fopen(fileDict, "ab");

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

fclose( f);

Printf("Entrada agregada\n");

}

Borrado no válido (anulado)

{

Primer elemento; archivo * f = 0; fpos_t p = 0;

memset(amp;I,0,SZ elemento);

Printf ("Por favor, ingrese una palabra: "); scanf ("s", I. palabra);

p = búsqueda (I.

palabra, 0);

if (p == 0) {

Printf ("¡No hay ningún registro de esta palabra en el diccionario! \ n ");

Devolución;

}

p-;

memset(amp;I,0,elemento SZ);

f = fopen( fileDict, "r b ");

fset pos (f amp; p

fwrite ( amp; I, ​​​​szITEM, 1, f

fclose(f);

Printf("Entrada eliminada\n");

}

Edición no válida (no válida)

{

Primer elemento; archivo * f = 0; fpos_t p = 0;

memset(amp;I,0,SZ elemento);

Printf ("Ingrese una palabra: "); scanf ("s", I. palabra);

p = búsqueda (I. palabra, 0); (p = = 0) {

Printf("¡No hay ningún registro de esta palabra en el diccionario! \n ");

Return

}

p-;

Printf ("Ingrese la definición y presione Enter para finalizar (presione Enter para cancelar para abandonar la modificación):

fflush ( stdin);

gets(Es decir);

if(strstr(es decir, "abortar"))

Printf("¡Modificación abortada!\n" );

return;

}

f = fopen(fileDict, "r b ");

fset pos(f amp; p);

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

fclose(f);

Printf("Entrada guardada\n");

}

Consulta no válida (no válida)

{

Primer elemento; fpos_t p = 0;

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

Printf ("Ingrese una palabra: "); scanf ("s", I. palabra); Find (i .palabra, I. quiero decir);

if (p = = 0) {

Printf ("¡No hay ningún registro de esta palabra en el diccionario!" \n ");

Retorno;

}

Printf("entrada s \nexplanation s", i.word, I.

media);

}

Conjunto no válido (no válido)

{

int cmd = 0;

Printf("El diccionario actual es s, ¿necesita cambiarlo (seleccione Y o Y para cambiar)?", fileDict

cmd = getch();

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

Printf("Ingrese el nombre del archivo del diccionario (incluida la ruta): ");

scanf( "s", fileDict);

Printf ("¡Configurado correctamente!\n ");

}

}

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

{

int cmd = 0

if (argc gt; 1)

strcpy(fileDict , argv[1]);

Otro

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

/* finalizar si*/

for(;;) {

printf("\n\

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

* *Bienvenido al Mini Diccionario **\n\

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

** Diccionario de 0 episodios**\n\

* * 1-Término de consulta**\ n\

* * 2-Nueva entrada**\n\

* * 3-Editar entrada**\n\

* * 4-Eliminar entrada**\n\

* * 5-Salir del diccionario**\n\

* * * * * * * * * * * * * * * * * * * * * * \n");

cmd = getch()-"0";

switch(comando) {

Caso 0: set() ; romper;

Caso 1: consulta(); romper;

Caso 2: append(); ;

Caso 4: borrar(); romper

Valor predeterminado: devolver

}

}

Devuelve 0;

}