Ver Mensaje Individual
  #7 (permalink)  
Antiguo 05/08/2011, 09:26
Avatar de baker1562
baker1562
 
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Borrar elemento en archivo binario

aqui esta el programa ya con esos errores que me me hiciste ver, en teoria esta el programa pero no logro hacer nada con esa opcion 3

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char socios[4][25];
  9.     int opcion;
  10.     int i=0;
  11.     char vacio=NULL;
  12.     int valor_i;
  13.     int contador_socios;
  14.     int numero;
  15.     string respuesta;
  16.    
  17.    
  18.     while(respuesta!="n" && respuesta!="N")
  19.     {
  20.        cout<<"Digite#1 para agregar socio"<<endl;
  21.        cout<<"Digite#2 para modificar socio"<<endl;
  22.        cout<<"Digite#3 para eliminar socio"<<endl;
  23.        cout<<"Digite#4 para mostrar socios"<<endl;
  24.        cout<<endl;
  25.        cout<<"Que opcion desea realizar?"<<endl;
  26.        cin>>opcion;
  27.        
  28.        ifstream Archivo_I_Entrante("i.dat", ios::in);
  29.        Archivo_I_Entrante>>i;
  30.        
  31.        switch(opcion)
  32.        {
  33.                      case 1:
  34.                           {
  35.                                ofstream SocioSaliente("socios.dat", ios::app|ios::binary);
  36.                                ofstream Archivo_I_Saliente("i.dat", ios::out);
  37.                                ifstream Archivo_I_Entrante("i.dat", ios::in);
  38.                                ofstream ContadorSociosSaliente("contador_socios.dat", ios::out);
  39.                                
  40.                                Archivo_I_Entrante>>i;
  41.                                
  42.                                
  43.                                
  44.                                if(i<4)
  45.                                {
  46.                                       cout<<"Digite el nombre del socio #"<<i<<endl;
  47.                                       cin>>socios[i];
  48.                                      
  49.                                       SocioSaliente.write((char*)&socios[i], sizeof(socios[i]));
  50.                                       i++;
  51.                                       contador_socios=i;
  52.                                       }
  53.                                       else
  54.                                       {
  55.                                           cout<<"Memoria Llena"<<endl;
  56.                                           cout<<endl;
  57.                                           }
  58.                                           Archivo_I_Saliente<<i;
  59.                                      
  60.                                           ContadorSociosSaliente<<contador_socios;
  61.                                           }
  62.                           break;
  63.                          
  64.                           case 2:
  65.                                {
  66.                                           fstream SociosEntrantes("socios.dat", ios::in|ios::out|ios::binary);
  67.                                           ifstream ContadorSociosEntrante("contador_socios.dat", ios::in);
  68.                                          
  69.                                           ContadorSociosEntrante>>contador_socios;
  70.                                          
  71.                                           for(int k=0;k<contador_socios;k++)
  72.                                           {
  73.                                                   SociosEntrantes.read((char*)&socios[k], sizeof(socios[k]));
  74.                                                   }
  75.                                          
  76.                                           cout<<"Digite un numero de socio(Valido de 0 a "<<contador_socios<<")"<<endl;
  77.                                           cin>>numero;
  78.                                          
  79.                                           SociosEntrantes.seekp(numero*sizeof(socios[1]), ios::beg);
  80.                                          
  81.                                           cout<<"El nombre del socio #"<<numero<<" es de nombre: "<<socios[numero]<<endl;
  82.                                           cout<<endl;
  83.                                           cout<<"Escriba la modificacion de nombre:"<<endl;
  84.                                           cin>>socios[numero];
  85.                                           cout<<endl;
  86.                                          
  87.                                           SociosEntrantes.write((char*)&socios[numero], sizeof(socios[1]));
  88.                                          
  89.                                           cout<<"Socio Modificado!!"<<endl;
  90.                                           cout<<endl;
  91.                                           }
  92.                         break;
  93.                        
  94.                         case 3:
  95.                              {
  96.                                           fstream SociosEntrantes("socios.dat", ios::in|ios::out|ios::binary);
  97.                                           ifstream ContadorSociosEntrante("contador_socios.dat", ios::in);
  98.                                           ofstream ContadorSociosSaliente("contador_socios.dat", ios::out);
  99.                                           ofstream Archivo_I_Saliente("i.dat", ios::out);
  100.                                          
  101.                                           ContadorSociosEntrante>>contador_socios;
  102.                                          
  103.                                           for(int j=0;j<contador_socios;j++)
  104.                                           {
  105.                                                   SociosEntrantes.read((char*)&socios[j], sizeof(socios[j]));
  106.                                                   }
  107.                                          
  108.                                           cout<<"Digite un numero de socio(Valido de 0 a "<<contador_socios<<")"<<endl;
  109.                                           cin>>numero;
  110.                                          
  111.                                           SociosEntrantes.seekp(numero*sizeof(socios[1]), ios::beg);
  112.                                          
  113.                                           cout<<"El nombre del socio #"<<numero<<" es de nombre: "<<socios[numero]<<endl;
  114.                                           cout<<endl;
  115.                                          
  116.                                          
  117.                                           SociosEntrantes.write((char*)&vacio, sizeof(socios[1]));
  118.                                          
  119.                                           cout<<"Socio Eliminado!!"<<endl;
  120.                                           cout<<endl;
  121.                                           contador_socios=contador_socios-1
  122.                                          
  123.    
  124.                                           i=i-1;
  125.                                           ContadorSociosSaliente<<contador_socios;
  126.                                           Archivo_I_Saliente<<i;
  127.                                          
  128.                      
  129.                                           }      
  130.                         break;
  131.                        
  132.                         case 4:
  133.                              {
  134.                                           ifstream SociosEntrantes("socios.dat", ios::in|ios::binary);
  135.                                           ifstream ContadorSociosEntrantes("contador_socios.dat", ios::in);
  136.                                          
  137.                                           ContadorSociosEntrantes>>contador_socios;
  138.                                           for(int i=0;i<contador_socios;i++)
  139.                                           {
  140.                                                   SociosEntrantes.read((char*)&socios[i], sizeof(socios[i]));
  141.                                                   }
  142.                                          
  143.                                           for(int m=0;m<contador_socios;m++)
  144.                                           {
  145.                                                   cout<<"Nombre#"<<m<<" : "<<socios[m]<<endl;
  146.                                                   }
  147.                                                   }
  148.                                                  cout<<endl;
  149.                         break;
  150.                         }
  151.                        
  152.                         cout<<"Desea realizar otra accion s/n?"<<endl;
  153.                         cin>>respuesta;
  154.                         system("cls");
  155.                         }
  156.                        
  157.                         return 0;
  158.                         }