[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