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:
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 .#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();
}
#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();
}
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!!