#include <iostream> #include <stdlib.h> #include <fstream> using namespace std; struct zapato { char codigo[7], mascara[7],nombre[30],descripcion[100],color[15]; // La variable mascara es la llave primaria int talla; }; // prototipos void escribir(struct zapato z); void lectura(); string nombre; /* Si se tiene el archivo clasificado por el código, se podría aplicar una búsqueda binaria. Por otro lado, si de deseara localizar los registros por otro campo, se tendría que ordenar de nuevo el archivo. Una alternativa de solución es crear un archivo de índices, donde cada registro del este archivo tendrá la siguiente estructura. */ struct indicecodigo{ //indices char codigo[7]; int indice; }; void escribir(struct zapato z){ ofstream archivo; archivo.open("pikolinos.txt",ios::out); //Abre el archivo if(archivo.fail()){ // si falla cout<<"no existe el archivo"; exit(1); } // Captura de los datos cout<<"ingresa nombre: "; cin.getline(z.nombre,sizeof(z.nombre)); cout<<endl; cout<<"ingresa codigo: "; cin.getline(z.codigo,sizeof(z.codigo)); cout<<endl; cout<<"ingresa talla: "; cin>>z.talla; cin.ignore(); cout<<endl; cout<<"ingresa color: "; cin.getline(z.color,sizeof(z.color)); cout<<endl; cout<<"ingresa descripcion: "; cin.getline(z.descripcion,sizeof(z.descripcion)); cout<<endl; cout<<"ingresa mascara(llave primaria) con el siguiente formato: " << endl; cout << "genero del calzado(H o M) 3 digitos, categoria(1.- De tacon, 2.-Agujetas y mocasines, 3.- Botas, 4.- Botines): "; cin.getline(z.mascara,sizeof(z.mascara)); cout<<endl; // insercion de los datos al archivo archivo<<z.mascara<<"|"<<z.nombre<<"|"<<z.descripcion<<"|"<<z.talla<<"|"<<z.color<< "|"; archivo.close(); // cerrar el archivo } void lectura() { ifstream archivo; string texto; archivo.open("pikolinos.txt",ios::in); // abrir en lectura if(archivo.fail()){ cout<<"no se pudo abrir el archivo"; exit(1); } while(!archivo.eof()){ //mientras no sea el fin del archivo getline(archivo,texto); cout<<texto<<endl; } archivo.close(); } // ----------------------------MAIN---------------------------------int main() { struct zapato mizapato; // crear instancia para el zapato escribir(mizapato); lectura(); return 0; }