[C con Clase] Guardar y Leer Ficheros :-/

alan alandavidmc en hotmail.com
Vie Mar 30 00:11:15 CEST 2007


Hola a todos, agradeciendo de antemano su ayuda, quiciera que vean este codigo y me digan cual es el error porque no veo donde pueda estar cuando lo ejecuto (en visual C++ y en Dev-C++) me da un error (imprime basura) cuando llega al numero 26 (sin importar de donde empiece de 0 otro numero antes)  y se repite cada 256 numeros.
-------------------------------------------------------------------------------
#include <iostream>
using namespace std;

#define TAM 290

typedef struct stDATOS
{
	int edad; //si aca cambio a float el error aparece mas adelante
	char nombre[40];
} DATOS;


int main()
{
	FILE *arch;
	DATOS datosG, datosA[TAM];

	arch = fopen("prueba.txt", "w");
		for(int i = 0; i < TAM; i++)
		{
			datosG.edad = (int)i;
			sprintf(datosG.nombre, "Alan David Manosalva Cordova_%i", datosG.edad);
			fseek(arch, i*sizeof(DATOS), SEEK_SET);
			fwrite(&datosG, sizeof(DATOS), 1, arch);
		}
	fclose(arch);
	arch = fopen("prueba.txt", "r");
		for(i = 0; i < TAM; i++)
		{	
			fseek(arch, i*sizeof(DATOS), SEEK_SET);
			fread(&datosA[i], sizeof(DATOS), 1, arch);
		}
	fclose(arch);
	for(i = 0; i < TAM; i++)
		printf("%s - %i\n", datosA[i].nombre, datosA[i].edad);
	return 0;
}


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