Autor Tema: Tamaño de bytes de un fichero

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

23 Enero, 2020, 07:02 pm
Leído 605 veces

AlexFeynman

  • Junior
  • Mensajes: 67
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Buenas.

Tengo el siguiente código y me piden cuál será el tamaño de los ficheros f1 y f2 sabiendo que un entero ocupa 4 bytes y un carácter 1 byte.

int main(void)
{
  ofstream f, g;
  int i;

  f.open("f1.dat", ios::binary);
  g.open("f2.dat")

  if (!f || !g)
    cout << "Error abriendo fichero.”;
  else
  {
     for (i = 10; i <= 15; i++)
     {
        f.write((char *)(&i), sizeof(i));
        g << i << "\n";
      }

      f.close();
      g.close();
   }
  return 0;
}


Por algunos ejercicios resueltos que he visto el tamaño de f1 debería ser \( 6*sizeof(int)=6*4=24  \) \( bytes \). Pero el tamaño de f2 no sé si es el mismo que el de f1 o diferente.

Gracias de antemano.


23 Enero, 2020, 07:49 pm
Respuesta #1

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,272
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Vean mis posts activos en mi página personal
    • Mis posts activos (click aquí)
Existen métodos para cambiar la posición del cabezal del archivo, por ejemplo hasta el final del archivo.
Existen métodos para averiguar la posición actual del cabezal del archivo.
Luego, se puede obtener el tamaño de un archivo en 2 pasos. Primero,  mover el cabezal alemán final; segundo leer el número de posición del cabezal cuando lo hemos movido al final del archivo.

Busca información sobre los métodos seekp y tellp o similares.