bueno aquie esta mi codigo, basicamente es que tengo una base de datos en un TXT y quiero cargarla a una matriz.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *puntero;
FILE *pf;
char cad[150];
int error;
int longitud;
char matriz [2000][2000];
int renglon,columna,contador=0,tamano;
float BD[3000][3000];
float Patent[3000][3000];
int NumClases,Caracteristicas;
int validacion=0;
int clases [50];
void main (){
puntero=fopen("Basedatos.txt","r"); //abrir la BD
if(puntero==NULL) // verificar que exista la BD
printf("Error al abrir el fichero"); // Imprimir el error
else{ //si la BD existe entonces se ejecuta lo demas
for(int i=0; i<10000; i++){ //ciclo para leer todos los renglones de la BD
error=feof(puntero); //error: verifica que ya llegamos al final del documento
if(error==0){ //si error=0, no hemos llegado al final del documento
fgets(cad,150,puntero); // leer cadena x cadena de la BD
longitud=strlen(cad); //obtener la longitud de la cadena leida
for (int i=0; i<longitud; i++){ //cilo para dividir la cadena obtenida
if(cad==32){ //verifico que el caracter que estoy trabajando sea un espacio
columna=0; //Inicializo columna en cero
}
else{
while(i<longitud){
if(cad!=32){ //verifico que el caracter que trabajo no sea un espacio
matriz[renglon][columna]=cad; //asigno en caracter en una nueva cadena (caracteristica X caracteristica)
columna++;
i++;
}
else{
renglon++;
columna=0;
break;
}
}
}
}
if(contador==0 && validacion==0){
validacion++;
for(int j=0; j<renglon; j++){
if(j==0){
NumClases=atoi(matriz[j]);
}
else{
Caracteristicas=atoi(matriz[j]);
}
}
}
else if(contador==1 && validacion ==1){
validacion++;
for(int y=0; y<NumClases; y++){
clases [y]=atoi(matriz[y]);
contador=0;
}
}
else{
for(int j=0; j<=renglon; j++){
BD[contador][j]=atof(matriz[j]);
tamano=renglon;
}
}
contador++;
renglon=0;
}
else{
break;
}
}
}
fclose(puntero);
/*IMPRIMIR LA BD EN TXT*/
////////////////////////////////////////////////////////////////////////////////
pf=fopen("datos.txt","a");
for(int m=1; m<contador; m++){
for(int n=0; n<=tamano; n++){ //imprimir BD completa en txt
fprintf(pf," %.3f",BD[m][n]);
}
fprintf(pf,"n");
}
fclose(pf);
////////////////////////////////////////////////////////////////////////////////
/*IMPRIMIR LA BD EN PANTALLA*/
/******************************************************************************/
for(int m=1; m<contador; m++){
for(int n=0; n<=tamano; n++){ //imprimir BD completa
printf(" %.3f",BD[m][n]);
}
printf("n");
}
/******************************************************************************/
/*IMPRIMIR UN REGISTRO DE LA BD*/
////////////////////////////////////////////////////////////////////////////////
for(int n=0; n<=tamano; n++){ //imprimir un patron de la BD
printf(" %.3f",BD[546][n]);
}
////////////////////////////////////////////////////////////////////////////////
/*IMPRIMIR LA CABECERA DE LA BD*/
////////////////////////////////////////////////////////////////////////////////
printf("nnel numero de clases en la BD es: %dnnEL numero caracteristicas de cada atributo son: %dnn ",NumClases,Caracteristicas);
for(int z=0; z<NumClases; z++){
z++;
printf("nla clase %d tiene: ",z);
z--;
printf(" %d elementos",clases[z]);
}
////////////////////////////////////////////////////////////////////////////////
getch ();
}
ESpero le entiendan, trate de comentarlo. saludosss