Programación General > C/C++

 Re: Leer matrices desde un archivo

<< < (2/2)

adocrates:
El archivo con numeros separados, las columnas por ; (puntoycoma) y las lineas por enter :

99;23;45;67;2;etc...
65;34;87;23;83;5;etc...
etc...

Luego tienes la matriz de numeros de 50x50, un bufer, un puntero, un FILE y los indices :  
--- Código: Text ---    int matriz[50][50];    char buf[1024], *p;    FILE *fp;    int k=0,j=0;   Inicializamos y abrimos el archivo (fijate que usamos el [-1] como inicializador ):  
--- Código: Text ---    printf("Lectura de un archivo con numeros para manejo de matriz en Lenguaje C.n");    for(k=0;k<50;k++)        for(j=0;j<50;j++)            matriz[k][j]=-1;    k=j=0;    if((fp=fopen("matriz.txt","r"))==NULL)        return(printf("ERRROR NO existe archivo con numeros 'matriz.txt' !n")); Leemos un buffer y luego parseamos (detectar y cortar) con el separador ';' con p y la funcion strtok :
--- Código: Text ---    while(fgets(buf,1024,fp) != NULL)    {        p=strtok(buf,";");        while(p!=NULL)        {            matriz[k][j]=atoi(p);            j++;            p=strtok(NULL,";");        }        j=0;        k++;    } Finalmente imprimimos el resultado, recorriendo la matriz y preguntando por el MAXIMO (50) o el inicializador [-1] :
--- Código: Text ---    for(k=0;k<50 && matriz[k][0] > -1;k++)    {        for(j=0;j<50 && matriz[k][j] > -1 ;j++)        {            printf("[%4d] ",matriz[k][j]);        }        putchar('n');    }    fclose(fp); Y esta es la salida :
--- Código: Text ---Lectura de un archivo con numeros para manejo de matriz en Lenguaje C.[  99] [  23] [  45] [  67] [   2] [  65] [  34] [  87] [  23] [  83] [   5]  

Suerte y Avisa como te fue.:D

Lucia:
gracias, en fins, yo te cuento, la pena es q no te podre decir nada ata enero, y a ver si me acuedo de esa ^^U

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa