Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Matriz dinamico y archivo

Estas en el tema de Matriz dinamico y archivo en el foro de C/C++ en Foros del Web. Hola a todos, es mi primera vez preguntando en este foro , y lo hago porque estoy con un problema que no he podido solucionar, ...
  #1 (permalink)  
Antiguo 23/05/2008, 22:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Matriz dinamico y archivo

Hola a todos, es mi primera vez preguntando en este foro , y lo hago porque estoy con un problema que no he podido solucionar, les cuento.

Necesito leer un matriz desde un archivo, siendo la dimension de esta variable (n x n) y para esto tengo pensado pasarle como argumentos a la funcion main el nombre de archivo y la dimension.

Algo así:

c:>BORLANDC/PROGRAM/nombre_programa archivo.txt dimension

Mi codigo es el siguiente:

Cita:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#include <string.h>

typedef struct
{
int **datos;
int dim;
} MATRIZ;


FILE *archi;

void inic_matriz(MATRIZ *ady, int dim)
{
ady->dim = dim;
ady->datos = (int **)malloc(sizeof(int)*(dim*dim));
}

void cargar_matriz (char *nom_arch, MATRIZ *ady)
{
int i,j;

clrscr ();

archi=fopen(nom_arch,"r");

fread (&ady->datos,sizeof(ady->datos),1,archi);

clrscr ();

for (i=0;i<ady->dim;i++)
{
for (j=0;j<ady->dim;j++)
{
printf("%i",ady->datos[i][j]);
}
printf ("\n");
}

getch ();


fclose (archi);

}


void main (int argc,char *argv[])
{

MATRIZ ady;

inic_matriz(&ady,atoi(argv[2]));

cargar_matriz(argv[1],&ady);

getch();

}
Cree una estructura con la cual puedo manejar un matriz de forma dinamica, y la probe llenando la matriz con solo "1" para luego imprimirla, y esto funciona a la perfeccion. Sin embargo cuando deseo leer la matriz que tengo almacenada en el archivo y la imprimo, imprime cualquier cosa .

La matriz que esta en el archivo labe.txt es de 5x5 y el programa lo ejecuto como sigue:

c:>BORLANDC/PROGRAM/matriz labe.txt 5

Alguna ayudita, estoy desesperado

Gracias!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:58.