Tema: Valor NULL
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/08/2011, 13:18
Avatar de baker1562
baker1562
 
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Valor NULL

Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     char socios[4][25];
  10.     int opcion;
  11.     int i=0;
  12.     char *vacio={""};
  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.                                              
  47.                                       SocioSaliente.seekp(i*sizeof(socios[1]), ios::beg);
  48.                                       cout<<"Digite el nombre del socio #"<<i<<endl;
  49.                                       cin>>socios[i];
  50.                                      
  51.                                      
  52.                                       SocioSaliente.write((char*)&socios[i], sizeof(socios[i]));
  53.                                       i++;
  54.                                       contador_socios=i;
  55.                                       }
  56.                                       else
  57.                                       {
  58.                                           cout<<"Memoria Llena"<<endl;
  59.                                           cout<<endl;
  60.                                           }
  61.                                           Archivo_I_Saliente<<i;
  62.                                      
  63.                                           ContadorSociosSaliente<<contador_socios;
  64.                                           }
  65.                           break;
  66.                          
  67.                           case 2:
  68.                                {
  69.                                           fstream SociosEntrantes("socios.dat", ios::in|ios::out|ios::binary);
  70.                                           ifstream ContadorSociosEntrante("contador_socios.dat", ios::in);
  71.                                          
  72.                                           ContadorSociosEntrante>>contador_socios;
  73.                                          
  74.                                           for(int k=0;k<contador_socios;k++)
  75.                                           {
  76.                                                   SociosEntrantes.read((char*)&socios[k], sizeof(socios[k]));
  77.                                                   }
  78.                                          
  79.                                           cout<<"Digite un numero de socio(Valido de 0 a "<<contador_socios<<")"<<endl;
  80.                                           cin>>numero;
  81.                                          
  82.                                           SociosEntrantes.seekp(numero*sizeof(socios[1]), ios::beg);
  83.                                          
  84.                                           cout<<"El nombre del socio #"<<numero<<" es de nombre: "<<socios[numero]<<endl;
  85.                                           cout<<endl;
  86.                                           cout<<"Escriba la modificacion de nombre:"<<endl;
  87.                                           cin>>socios[numero];
  88.                                           cout<<endl;
  89.                                          
  90.                                           SociosEntrantes.write((char*)&socios[numero], sizeof(socios[1]));
  91.                                          
  92.                                           cout<<"Socio Modificado!!"<<endl;
  93.                                           cout<<endl;
  94.                                           }
  95.                         break;
  96.                        
  97.                         case 3:
  98.                              {
  99.                                           fstream SociosEntrantes("socios.dat", ios::in|ios::out|ios::binary);
  100.                                           ifstream ContadorSociosEntrante("contador_socios.dat", ios::in);
  101.                                           ofstream ContadorSociosSaliente("contador_socios.dat", ios::out);
  102.                                           ofstream Archivo_I_Saliente("i.dat", ios::out);
  103.                                          
  104.                                           ContadorSociosEntrante>>contador_socios;
  105.                                          
  106.                                           for(int j=0;j<contador_socios;j++)
  107.                                           {
  108.                                                   SociosEntrantes.read((char*)&socios[j], sizeof(socios[j]));
  109.                                                   }
  110.                                          
  111.                                           cout<<"Digite un numero de socio(Valido de 0 a "<<contador_socios<<")"<<endl;
  112.                                           cin>>numero;
  113.                                          
  114.                                           SociosEntrantes.seekp(numero*sizeof(socios[1]), ios::beg);
  115.                                          
  116.                                           cout<<"El nombre del socio #"<<numero<<" es de nombre: "<<socios[numero]<<endl;
  117.                                           cout<<endl;
  118.                                          
  119.                                          for(int j=0;j<25;j++)
  120.                                          {
  121.                                                  socios[numero][j]=NULL;
  122.                                                  }
  123.                                                  
  124.                                          SociosEntrantes.seekp(numero*sizeof(socios[1]), ios::beg);
  125.                                          SociosEntrantes.write((char*)&socios[numero], sizeof(socios[1]));
  126.                                          
  127.                                           cout<<"Socio Eliminado!!"<<endl;
  128.                                           cout<<endl;
  129.                                          
  130.                                         while(numero<contador_socios)
  131.                                         {  
  132.                                           SociosEntrantes.seekp(numero*sizeof(socios[1]), ios::beg);
  133.                                           memcpy(socios[numero], socios[numero+1], 25 * (3 - numero));
  134.                                           SociosEntrantes.write((char*)&socios[numero], sizeof(socios[0]));
  135.                                           SociosEntrantes.seekp(numero+1*sizeof(socios[1]), ios::beg);
  136.                                           for(int k=0;k<25;k++)
  137.                                           {
  138.                                                   socios[numero+1][k]=NULL;
  139.                                                  
  140.                                                   }
  141.                        
  142.                                           numero++;
  143.                                           }
  144.                                          
  145.                                                  
  146.    
  147.                                           i=i-1;
  148.                                           contador_socios=contador_socios-1;
  149.                                           ContadorSociosSaliente<<contador_socios;
  150.                                           Archivo_I_Saliente<<i;
  151.                                          
  152.                      
  153.                                           }      
  154.                         break;
  155.                        
  156.                         case 4:
  157.                              {
  158.                                           ifstream SociosEntrantes("socios.dat", ios::in|ios::binary);
  159.                                           ifstream ContadorSociosEntrantes("contador_socios.dat", ios::in);
  160.                                           ifstream Archivo_I_Entrante("i.dat", ios::in);
  161.                                          
  162.                                           ContadorSociosEntrantes>>contador_socios;
  163.                                           Archivo_I_Entrante>>i;
  164.                                           for(int m=0;m<i;m++)
  165.                                           {
  166.                                                   SociosEntrantes.read((char*)&socios[m], sizeof(socios[0]));
  167.                                                   }
  168.                                          
  169.                                           for(int m=0;m<contador_socios;m++)
  170.                                           {
  171.                                                   cout<<"Nombre#"<<m<<" : "<<socios[m]<<endl;
  172.                                                   }
  173.                                                   }
  174.                                                  cout<<endl;
  175.                         break;
  176.                         }
  177.                        
  178.                         cout<<"Desea realizar otra accion s/n?"<<endl;
  179.                         cin>>respuesta;
  180.                         system("cls");
  181.                         }
  182.                        
  183.                         return 0;
  184.                         }