Hola 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

# 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 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 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

#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. diccionario::findWord()

{

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

Palabra de cadena;

CIN gt; gtword

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

int I = 0;

mientras(1)

{

Temperatura de cadena;

texto gt gt temperatura;

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 gttemperature;

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

Pausa;

cout lt lttemp lt" ";

}mientras(temp!="");

cout lt ltendl

}

if(temp== " ")

romper;

I = tamaño;

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

}

texto

}

void. Diccionario: :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 lt interpretación lt ltendl

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

char z;

int I =-size;

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

{

I = tamaño;

text.seekp(uno);

texto gt gtz; >}

if(word . length() paraphrase . length() 4 gt;Size)//Un espacio entre la palabra y su definición y un espacio para marcar el final más un espacio, así que suma 4 .

{

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

Return

}

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

text lt ltword lt lt" " " lt ltDefinitionlt lt" ";

if(z==' ')

{

texto . close();

Regresar

}

texto.seekp(i tamaño) , IO: :beg);

text lt "* ";

text close(); diccionario: :deleteWord()

{

cout lt lt"Ingrese la palabra que desea eliminar.

"

Palabra de cadena;

CIN gt; gtword

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

Cadena eliminada;

int I =-size;//Marcar posición eliminada

Hacer

{

I = tamaño;

text.seekg(one);

texto gt gt eliminado

if (Eliminado==" * ")

{

cout lt "Palabra no encontrada, no se pudo eliminar" < ltendl

Retorno;

}

}Y (eliminado!= palabra);

text.seekp(一);

text lt lt" ";// El primer elemento está marcado, lo que indica que está vacío

for(int j = 1; j lt tamaño; j)

{

text lt lt" " ;

}

cout lt lt"Eliminado exitosamente. "

text . close();

}

#endif

Página principal

Usar STD: :cout;

Usar std::endl;

Usar std::cin;

# incluir ltfstream gt

Usar std: :IOs;

Usar std::fstream;

# incluir lt string gt

Usar std::string;

Usar 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"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 gt; gt select;

y (¡select!=1. amp select!= 2 amp amp select!= 3 amp amp select!=4)

{

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

"< ltendl

Comando();

CIN gt; selección gt;

}

Operación del diccionario;

bool exe = true

mientras(exe)

{

Cambiar (seleccionar)

{

Caso 1:

oper . buscar palabra();

Break;

Caso 2:

insertar palabra(). ;

Pausa;

Caso 3:

oper . eliminar palabra();

Pausa;

Caso 4:

exe = false

Romper

}

if(select==4)

break;

command();

cin gt; gt select;

mientras (select! = 1. amp select! = 2 amp amp select! = 3 amperios amp¡Elige! =4)

{

cout lt lt"Selección incorrecta, elige de nuevo. "< ltendl

Comando();

CIN gt; selección gt;

}

}

Devuelve 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 derecha columna)

<. p>Grayfogel Byrd Laubfogel

Conejo enlatado

Affe el mono

Mapfeld

Krebs el cangrejo Krabi

Aguila Adler, billete de dólar Aar Zen