Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/06/2013, 09:38
KikoSalinas
 
Fecha de Ingreso: mayo-2013
Ubicación: Granada
Mensajes: 8
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Ficheros binarios

Ya lo he solucionado.
Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int main (int argc, char **argv)
  9. {
  10.     const int TAM_BUFFER = 128;
  11.     int buffer [TAM_BUFFER];  
  12.     int entero, cont=0;
  13.    
  14.    
  15.     ifstream fi;
  16.     ofstream fo;
  17.  
  18.    
  19.     if (argc != 3) {
  20.         cerr << "Error: Numero de argumentos incorrecto\n";
  21.         cerr << "Formato: " << argv[0]<< " <fich_in> <fich_out>\n";
  22.         exit (1);
  23.     }
  24.    
  25.     fi.open (argv[1]);
  26.    
  27.     if (!fi) {
  28.         cerr << "Error: no pudo abrirse " << argv[1] << endl;
  29.         exit (2);
  30.     }
  31.    
  32.     fo.open(argv[2], ofstream::binary);
  33.    
  34.     if (fo.fail())
  35.     {
  36.         cerr << "Error: No pudo crearse " << argv[2] << endl;
  37.         exit (2);
  38.     }
  39.  
  40.    
  41.     fi >> entero;
  42.    
  43.     while (!fi.eof())
  44.     {
  45.         if(cont==TAM_BUFFER){
  46.             for(int i=0; i<TAM_BUFFER; i++)
  47.                 fo.write ((const char *) (&buffer[i]), sizeof (int));
  48.         }
  49.         buffer[cont];
  50.         cont++;
  51.        
  52.         fi >> entero;
  53.        
  54.     }
  55.    
  56.     for(int i=0; i<cont; i++)
  57.         fo.write ((const char *) (&buffer[i]), sizeof (int));
  58.  
  59.    
  60.     fi.close ();
  61.     fo.close ();
  62.  
  63.     return (0);
  64. }

Gracias. Un saludo.