Colección de citas famosas - Colección de versos - Búsqueda en diccionario de fórmulas

Búsqueda en diccionario de fórmulas

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

# include & ltfstream.h & gt

# include & ltstring.h & gt

# include & ltiostream.h & gt

//Método para leer archivos

archivo fstream;

file.open(" data.txt", IOs::in); //Abra 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 a una cadena o una matriz de caracteres utilizada para almacenar una cadena, y n representa el número máximo de caracteres que se leerán esta vez.

//Método para escribir en un archivo

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 a una cadena o una matriz de caracteres utilizada para almacenar una cadena, y n representa el número de caracteres escritos esta vez.

Archivo. put (char c), el método put se utiliza para escribir caracteres en un 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 muestra 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

#define _DICTIONARY_H

const int tamaño = 30

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

diccionario::diccionario() // Si el registro está vacío, crea un * como El fin.

{

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

Texto& lt& lt"* ";

texto close();

}

void diccionario::findWord()

{

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

Palabra de cadena;

CIN>>Word;

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

int I = 0;

while(1)

{

Temperatura de cadena;

Texto & gt& gttemp

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

{

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

"

Descanso;

}

si (palabra == temp)

{

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

Hacer

{

Texto& gt& gttemp

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

break;

cout & lt& lt<& lt" ";

} while( temp ! ="%");

cout & lt& ltendl

}

si (temp ="%")

descanso;

I+=tamaño;

texto . seekg(I, IOs::beg);

}

texto cerrar () ;

}

void diccionario::insertWord()

{

cout & lt& lt"Ingresa la palabra que deseas agregar palabra. "

Palabra de cadena;

CIN>>Word;

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

Interpretación de cadena;

CIN.ignore();

getline(CIN, interpretación);

cout & lt& lt Definición & lt& ltendl

texto abierto ("d:\ \ tiny-dict . txt", IOs::in | IOs::out

char z; > p>

int I =-size;

while (z!='*'& amp; & ampz!='+') //* indica el final, + indica la eliminación de palabras dejadas atrás Área.

{

I+=size;

text.seekp(1);

Texto>>z;

}

if (palabra . longitud () + paráfrasis . longitud () + 4> tamaño) // El espacio entre la palabra y su definición y el espacio utilizado para marcar el final más % y un espacio, así que agregue 4.

{

cout & lt& ltLa entrada es demasiado larga y la inserción falla <<endl

Return;

p>

}

texto . seekp (I, IOs::beg);

Texto & lt& ltpalabra & lt& lt"""& lt& ltDefinición & lt& lt" % ";

if (z = ='+')

{

texto . close();

Regresar;

p>

}

texto . seekp(I+tamaño, IOs::beg);

Texto& lt& lt"* ";

texto. close();

}

void Dictionary::deleteWord()

{

cout & lt& lt"Ingrese las palabras eliminadas .

"

Palabra de cadena;

CIN>> palabra;

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

La cadena ha sido eliminada;

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

Hacer

{

I+=tamaño;

texto . seekg(I);

Texto & gt& gt eliminado; if (Eliminado = ="*")

{

cout & lt& lt"No se puede encontrar la palabra, la eliminación falló"<& ltendl

Return;

}

}mientras (¡eliminado! = palabra);

text.seekp(1);

Texto & lt& lt" + ";//El primer elemento está marcado con +, lo que significa que está vacío.

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

{

Texto& 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 clasificación

{

Público:

Diccionario();

anular buscar palabra();

anular insertar palabra();

anular eliminar palabra();

Privado:

texto fstream;

};

Comando no válido()

{

cout<<"Por favor 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 > amp& amp selección =4)

{

la selección de cout & lt& lt es incorrecta, vuelva a seleccionar < & ltendl

Comando ();

CIN>>Select;

}

Operación del diccionario;

bool exe = true

mientras(exe )

{

Cambiar (seleccionar)

{

Caso 1 :

oper . buscar palabra ( );

Romper;

Caso 2:

insertar palabra(); p>

Pausa;

Caso 3:

oper.delete word();

Pausa;

Caso 4:

exe = false

Romper;

}

if (select == 4)

Romper;

Instrucción();

p>

CIN>>choice;

mientras (¡elección!= 1&&ampchoice!= 2&&&elección!= 3&&&elección! =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, la columna de la izquierda es inglés y la columna de la derecha es alemán)

Greifvogel Byrd Laubvogel

Conejo en conserva

Monkey Affe

Mapp Feder

Krebs Crab Krabi

Billete de dólar Águila Adler, Aar Zen