c diccionario
# 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)
{ p>
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 ); p>
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;
}