[AYUDA]C++.Matrices de char en archivos binarios

Iniciado por DPool, 31 Julio 2018, 09:41 AM

0 Miembros y 1 Visitante están viendo este tema.

DPool

Buenas, recien estoy empezando en esto de la programacion en c++, y tengo una duda. No se como escribir los datos que tengo en una matriz de tipo char en un archivo binario, si me lo pudieran responder se los agradeceria mucho.

Aca les dejo el codigo del programa

CODIGO

#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <string.h>
#include<stdio.h>

#define BOL 4
#define EQUIPO 32
#define CONF 6
#define BOLEQ 8
#define BOLCONF 3

using namespace std;


struct Bolilleros{
   //Registros de los bolilleros(numero de bolillero,equipo,confederacion)
   char *numBol[BOL]={"1","2","3","4"};
   char *equipo[EQUIPO]={"Rusia","Alemania","Brasil","Portugal","Argentina",
   "Belgica","Polonia","Francia","España","Peru","Suiza","Inglaterra","Colombia",
   "Mexico","Uruguay","Croacia","Dinamarca","Islandia","Costa Rica","Suecia",
   "Tunez","Egipto","Senegal","Iran","Serbia","Nigeria","Australia","Japon",
   "Marruecos","Panama","Corea del Sur","Arabia Saudita"};
   char *conf[CONF]={"AFC","CAF","Concacaf","Conmebol","OFC","UEFA"};
   
   //Crea la matriz del bolillero 1 (numero de bolillero,equipo,confederacion)
    char *bolillero1[BOLEQ][BOLCONF]={
      {numBol[0],equipo[0],conf[0]},
      {numBol[0],equipo[1],conf[5]},
      {numBol[0],equipo[2],conf[3]},
      {numBol[0],equipo[3],conf[5]},
      {numBol[0],equipo[4],conf[3]},
      {numBol[0],equipo[5],conf[5]},
      {numBol[0],equipo[6],conf[5]},
      {numBol[0],equipo[7],conf[5]},
   };
   //Crea la matriz del bolillero 2 (numero de bolillero,equipo,confederacion)
    char *bolillero2[BOLEQ][BOLCONF]={
      {numBol[1],equipo[8],conf[5]},
      {numBol[1],equipo[9],conf[3]},
      {numBol[1],equipo[10],conf[5]},
      {numBol[1],equipo[11],conf[5]},
      {numBol[1],equipo[12],conf[3]},
      {numBol[1],equipo[13],conf[2]},
      {numBol[1],equipo[14],conf[3]},
      {numBol[1],equipo[15],conf[5]},
   };
   //Crea la matriz del bolillero 3 (numero de bolillero,equipo,confederacion)
    char *bolillero3[BOLEQ][BOLCONF]={
      {numBol[2],equipo[16],conf[5]},
      {numBol[2],equipo[17],conf[5]},
      {numBol[2],equipo[18],conf[2]},
      {numBol[2],equipo[19],conf[5]},
      {numBol[2],equipo[20],conf[1]},
      {numBol[2],equipo[21],conf[1]},
      {numBol[2],equipo[22],conf[1]},
      {numBol[2],equipo[23],conf[0]},
   };
   //Crea la matriz del bolillero 4 (numero de bolillero,equipo,confederacion)
    char *bolillero4[BOLEQ][BOLCONF]={
      {numBol[3],equipo[24],conf[5]},
      {numBol[3],equipo[25],conf[1]},
      {numBol[3],equipo[26],conf[5]},
      {numBol[3],equipo[27],conf[0]},
      {numBol[3],equipo[28],conf[1]},
      {numBol[3],equipo[29],conf[2]},
      {numBol[3],equipo[30],conf[0]},
      {numBol[3],equipo[31],conf[0]},
   };         
};
void mostrarBolilleros(){
   Bolilleros muestraBolillero;
   //Muestra el bolillero 1
   cout<<"BOLILLERO 1"<<endl;
   cout<<"Bolillero|Equipo|Confederacion|"<<endl;
   for(int i = 0; i < BOLEQ; i++){
      for(int j = 0; j < BOLCONF; j++){
          cout<<muestraBolillero.bolillero1[j]<<" |";                     
      }
      cout<<endl;
   }
   //Muestra el bolillero 2
   cout<<"BOLILLERO 2"<<endl;
   cout<<"Bolillero|Equipo|Confederacion|"<<endl;
   for(int i = 0; i < BOLEQ; i++){
      for(int j = 0; j < BOLCONF; j++){
          cout<<muestraBolillero.bolillero2[j]<<" |";                     
      }
      cout<<endl;
   }
   //Muestra el bolillero 3
   cout<<"BOLILLERO 3"<<endl;
   cout<<"Bolillero|Equipo|Confederacion|"<<endl;
   for(int i = 0; i < BOLEQ; i++){
      for(int j = 0; j < BOLCONF; j++){
          cout<<muestraBolillero.bolillero3[j]<<" |";                     
      }
      cout<<endl;
   }
   //Muestra el bolillero 4
   cout<<"BOLILLERO 4"<<endl;
   cout<<"Bolillero|Equipo|Confederacion|"<<endl;
   for(int i = 0; i < BOLEQ; i++){
      for(int j = 0; j < BOLCONF; j++){
          cout<<muestraBolillero.bolillero4[j]<<" |";                     
      }
      cout<<endl;
   }
};
//mal
void crearArchivoBolilleros(){
   Bolilleros numberBoli;
   ofstream escribirFichero("Bolilleros.dat", ios::binary); // Apertura como salida
   if (escribirFichero){
      cout << "Apertura con éxito \n";
      for (int i = 0; i < BOL; i++){
         escribirFichero.write((char *)&numberBoli.numBol,sizeof(Bolilleros));
      }
   }else{
      cout << "No se ha podido abrir el fichero";
   }
   escribirFichero.close();
   /*
   Bolillero Archivo;
   ofstream fichero("Bolilleros.dat", ios::binary);
   strcpy(Archivo.nombreEquipo,"Argentina");
    strcpy(Archivo.confederacionEquipo,"Conmebol");
    fichero.write((char*)&Archivo, sizeof(Bolillero));
   fichero.close();
   */
}
//mal
void leerArchivoBolilleros(){   
   ifstream lectura("Bolilleros.dat", ios::binary);
   Bolilleros al[BOL];
   for (int i = 0; i < BOL; i++){
      lectura.read((char *)(&al),sizeof(Bolilleros));
       cout<<"Equipo: "<<al.numBol<<endl;
   }
   lectura.close();
}
   
   
   /*
   Bolillero LeerArchivo;
      ifstream leerfichero("Bolilleros.dat", ios::binary);
    leerfichero.read((char*)&LeerArchivo, sizeof(Bolillero));
    cout<<"Equipo: "<<LeerArchivo.nombreEquipo<<endl;
    cout<<"Confederacion del Equipo: "<<LeerArchivo.confederacionEquipo<<endl;
   */


int main(){
   //Ejecuta la funcion de crear un bolillero
   crearArchivoBolilleros();//sigue mal esta wea
   //mostrarBolilleros();
   leerArchivoBolilleros();
   return 0;
}