Informix - Ayuda con matrices en c++

   
Vista:

Ayuda con matrices en c++

Publicado por Arlin (1 intervención) el 12/06/2010 03:02:28
Hola, necesito hacer un programa en C++. Basicamente tengo que leer n matrices desde un archivo dado por el usuario, y luego escribir todas las matrices en otro archivo designado por mi. Hasta ahora tengo el siguiente codigo:

#include <stdio.h>

struct STMATRICES
{
float matriz [10][10];
unsigned char filas;
unsigned char columnas;
char nombre[10];
float propabilidad;
float semilla;

};

struct STARREGLO
{
STMATRICES matrices[20];
unsigned char cantMatrices;
};

STMATRICES leer();
void escribir (STMATRICES arr);

main()
{
STMATRICES arr;
STARREGLO matriz;
printf("Cantidad de matrices: ");
scanf("%hhu",&matriz.cantMatrices);
unsigned char k,m;
k=0;
m=0;
while(k<matriz.cantMatrices)
{
matriz.matrices[k]=leer();
k=k+1;
}

while(m<matriz.cantMatrices)
{
escribir(matriz.matrices[k]);
m=m+1;
}

}

STMATRICES leer()
{
FILE *pArch;
STMATRICES arr;
unsigned char f, c;
if(pArch !=0)
{
printf("Nombre del archivo: ");
scanf("%s",&arr.nombre);
pArch = fopen(arr.nombre,"r");
while(!feof(pArch))
{
fscanf(pArch,"%f",&arr.semilla);
fscanf(pArch,"%f",&arr.propabilidad);
fscanf(pArch,"%hhu",&arr.filas);
fscanf(pArch,"%hhu",&arr.columnas);

f=0;
while(f<arr.filas)
{
c=0;
while(c<arr.columnas)
{
fscanf(pArch,"%f",&arr.matriz[f][c]);
c=c+1;
}
f=f+1;
}
fclose(pArch);
}
}

else
{
printf("Falla en el archivo. \n");
}
return arr;
}

void escribir (STMATRICES arr)
{
FILE *Arch;
unsigned char f,c;
Arch = fopen("resultado.txt","r");
if(Arch !=0)
{
while(!feof(Arch))
{
fprintf(Arch,"%hhu");
fprintf(Arch,"%f",arr.semilla);
fprintf(Arch,"%s",arr.nombre);
f=0;
while(f<arr.filas)
{
c=0;
while(c<arr.columnas)
{
fprintf(Arch,"%f",&arr.matriz[f][c]);
c=c+1;
}
f=f+1;
}
fclose(Arch);
}
}

else
{
printf("Falla en el archivo. \n");
}
}

Pero cuando lo corro, luego de que ingreso el nombre del archivo, no hace mas nada.. Agradezco su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder