[C con Clase] Manejo de archivos

Steven Davidson srd4121 en njit.edu
Mie Sep 24 20:01:53 CEST 2008


Hola Pablo,

Pablo Brunet wrote:
> "Proyaecto1 ha detectado un problema y debe cerrarse" ;(
> 

El error que veo, aparte del mencionado por Rolando, es que no has 
escrito correctamente el fichero a ser abierto. Escribes:

pablo = fopen( "E:\files.dat", "rb" );

Recuerda que el carácter '\' es especial. Por lo tanto, estás indicando 
el carácter especial '\f' que sirve para avanzar una página, aunque en 
este caso, no será interpretado de esta manera. Dicho esto, deberás 
escribir dos barras invertidas '\\'. Esto es,

pablo = fopen( "E:\\files.dat", "rb" );

Esto implica "E:\files.dat", en C++.


El otro problema que tienes, pero que no es un error gramatical sino 
lógico por falta de comprensión, es en el trato del fichero "files.dat". 
Para escribir datos en binario o bien necesitas un editor hexadecimal 
para escribir cada byte o bien creas otro programa para escribir esa 
información en binario. Por ejemplo,

#include <cstdio>

using namespace std;

int main()
{
   int lista[] = { 125,125, 25,36, 57,57 };

   FILE *fp = fopen( "E:\\files.dat", "wb" );
   fwrite( lista, sizeof lista[0], sizeof lista / sizeof lista[0], fp );
   fclose( fp );

   return 0;
}

Ejecuta este programa o código antes de tu programa anterior de lectura.


Espero que esto te ayude.

Steven





Más información sobre la lista de distribución Cconclase