Colección de citas famosas - Slogan de motivación - c función de consulta de diccionario

c función de consulta de diccionario

Entre ellos, cuando se trata de leer y escribir archivos, los siguientes son los archivos de encabezado incluidos y los métodos principales:

# include & ltfstream.h & gt

# include & ltstring. h & gt

p>

# include & ltiostream.h & gt

//Método de lectura de archivos

archivo fstream;

file.open( "data.txt ", IOs::in); //Abre el archivo data.txt leyendo.

File.eof() determina si el archivo ha sido leído.

file.getline(char *line, int n)

El método getline se utiliza para leer una línea de caracteres de un archivo. Entre ellos, la primera línea de parámetro es un puntero de carácter que apunta a una cadena o una matriz de caracteres utilizada para almacenar la cadena, y n representa el número máximo de caracteres leídos esta vez.

//Método para escribir archivos

file.open("data.txt ", IOs::out); //Abre el archivo data.txt escribiendo.

file.write(char *line, int n)

El método de escritura se utiliza para escribir una línea de caracteres en un archivo. Entre ellos, la primera línea de parámetro es un puntero de carácter que apunta a una cadena o una matriz de caracteres utilizada para almacenar la cadena, y n representa el número de caracteres escritos esta vez.

Archivo. put (char c), el método put se utiliza para escribir un carácter en el archivo.

file . close(); //Cierra el archivo, ya sea leyendo o escribiendo el archivo. Debe cerrar el archivo después de su uso.

El procedimiento es el siguiente. Después de la modificación, no hay errores ni advertencias. Pero se bloquea al buscar, insertar y eliminar palabras en tiempo de ejecución. Por favor dame algún consejo. ¿Qué está sucediendo? ¡Muchas gracias!

Diccionario.h

#ifndef _DICTIONARY_H

#Definition_Dictionary_H

const int size = 30

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Diccionario::diccionario() //Si el registro está vacío, cree un * como final.

{

text.open("d:\\tiny-dict.txt ", IOs::in | IOs::out

if); (text.eof())

texto & lt& lt"* ";

texto close();

}

. void Dictionary::findWord()

{

cout & lt& lt"Ingrese la palabra que desea consultar."

Palabra de cadena;

CIN>& gtword

text.open("d:\\tiny-dict.txt ", IOs::in); //Abre el archivo para leer.

int I = 0;

mientras(1)

{

Temperatura de cadena;

texto & gt& gtTemperature;

If(temp=="*")//Agrega * al final de los datos para indicar el final del archivo.

{

cout & lt& lt"No se puede encontrar la palabra.

"

Descanso;

}

if(palabra==temp)

{

cout & lt& lt"Explicación:";

Hacer

{

texto & gt& gtTemperatura;

if(temp = = " " " ) //Agrega % al final de la explicación para indicar el final de la explicación.

Pausa;

cout & lt& lttemp & lt& lt" ";

}mientras(temp!="%");

cout & lt& ltendl

}

if(temp== " ")

romper;

I+=tamaño; p>

text.seekg(i, IOs::beg);

}

text .close();

}

void Dictionary::insertWord()

{

cout & lt& lt"Ingrese la palabra que desea agregar."

Palabra de cadena ;

CIN & gt;& gtword

cout & lt& lt"Ingrese la definición de la palabra que agregó."

Definición de cadena;

CIN .ignore();

getline(cin, traducción gratuita);

cout & lt& ltDefinition& lt& ltendl

text.open("d : \\tiny-dict.txt ", IOs::in | IOs::out);

char z;

int I =-size;

Y (z!= ' * ' & amp& ampz!='+')//* significa el final, y + significa eliminar el área dejada por una palabra.

{

I+=tamaño;

text.seekp(uno);

texto & gt& gtz;

}

if(palabra . longitud()+parafrase . longitud()+4 & gt;Tamaño)//Un espacio entre la palabra y su definición y un espacio para marcar el final Agregar % y un espacio, así que suma 4.

{

cout & lt& ltLa entrada es demasiado larga, la inserción falló< & ltendl

Return

}

text.seekp(i, IOs::beg);

text & lt& ltword & lt& lt" " " & lt& ltDefinición& lt& lt" % ";

if (z=='+')

{

texto .cerrar();

Regresar

}

text.seekp(i+size, IOs::beg);

text & lt& lt"* ";

text close();

}

void Dictionary::deleteWord()

{

cout & lt& lt"Ingrese la palabra eliminada.

"

Palabra de cadena;

CIN>& gtword

text.open("d:\\tiny-dict.txt ", IOs: :in | IOs::out);

La cadena ha sido eliminada;

int I =-size; //Marca la posición eliminada

Hacer

p>

{

I+=tamaño;

text.seekg(1);

texto & gt& gt ha sido eliminado;

if(Deleted=="* ")

{

cout & lt& lt"Palabra no encontrada, error de eliminación"< & ltendl

Regresar ;

}

}Y (¡eliminado!= palabra);

text.seekp(1);

texto & lt& lt "+ ";//El primer elemento está marcado con +, lo que indica vacío

for(int j = 1; j & lt size; j++)

{

text & lt& lt" ";

}

cout & lt& lt"Eliminado correctamente. "

text . close();

}

#endif

Página principal

Usar STD: :cout;

Usar STD::endl;

Usar STD::CIN;

# include & ltfstream & gt

Usar STD::IOs;

Usar STD::fstream;

# include & ltstring& gt

Usar STD::string;

Utilice STD::getline;

#Contiene "dictionary.h"

Diccionario de categorías

{

Público:

Diccionario();

anular buscar palabra();

anular insertar palabra();

anular eliminar palabra();

Privado:

texto fstream;

};

Comando no válido()

{

cout & lt& lt"Seleccione:\n(1). Encuentra la palabra\n(2). Insertar palabra\n(3). Eliminar palabra\n(4). Salir\n ";

}

int main()

{

Instrucción();

int select = 0;

CIN>& gtselect;

mientras (select!=1. ¡Seleccione! =4)

{

cout & lt& lt"Selección incorrecta, seleccione nuevamente.

"< & ltendl

Comando();

CIN & gt; & gtSelect;

}

Operación del diccionario;

p>

bool exe = true

while(exe)

{

Cambiar (seleccionar)

{

Caso 1:

oper . buscar palabra();

Romper

Caso 2:

oper . insertar palabra();

Pausa;

Caso 3:

oper . eliminar palabra();

Pausa;

Caso 4:

exe = false

Rotura;

}

if(select==4)

Pausa;

Comando();

CIN>>Seleccionar;

mientras (¡Seleccionar!=1.&Seleccionar! = 2 & amp& amp select! = 3 & amp& amp select =4)

{

cout & lt& lt"Selección incorrecta, seleccione nuevamente. "< <endl

Comando();

CIN>>Select;

}

}

Devolver 0 ;

}

D:\\tiny-dict.txt es el siguiente: (Es un diccionario inglés-alemán, inglés en la columna de la izquierda, alemán en la columna de la derecha) p>

Grayfogel Byrd Laubfogel

Conejo enlatado

Affe el mono

Mapfeld

Krebs el cangrejo Krabi

Billete de dólar Águila Adler, Aar Zen