El problema de leer datos de Excel en una matriz usando VC
Por ejemplo: libro1.txt
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
p>16 17 18 19 20
# include ltstdio.h gt
#define buff_size 2048 //Supongamos que la longitud de una línea no excede 2048 bytes.
//¿Cuántas columnas hay en una fila?
int get_col(char *buff) {
int i, L=0, N = 0
l = strlen(buff); >
for(I = 1;i ltl;i){
if(buff[I] gt;0x20 amp ampbuff[I-1] lt;= 0x 20)n;
};
if (buff[0]>0x 20)n;
Devuelve N;
}
ARCHIVO * fin
void main()
{
nombre de char en[80];
int fila, col, I, j;
char * buff
Float * * a;
buff = (char *)malloc(buff _ size * sizeof(char)); /p>
printf("Ingrese el nombre del archivo book 1. txt: ");
scanf("s ", nombre en //Obtenga el nombre del archivo
fin = fopen(namein, "r"); //Abre el archivo
if (fgets(buff, buff_size, fin)!= NULL)row = 1 //Lee la primera fila p>
col = get_col(buff); //Cuántas columnas se detectan
mientras (fgets(buff, buff_size, fin)!= NULL)row //Mida el número de filas
printf("row=d col=d\n ",row,col);
Rewind(fin);
//Asignación dinámica de dos matriz dimensional
p>a =(float * *)malloc(sizeof(float *)* fila);
for(j = 0; j lt fila; j ){
a[j]=(float *)malloc(sizeof(float)* col);
}
if (!a) {printf("Insuficiente memoria\ n "); Salir(a);};
//Leer en la tabla
for(j = 0; j lt fila; j)
for(I = 0 ;I ltcoli )
fscanf(fin, " f ", ampa[j][I]);
fclose(fin
//Finalmente la columna 1 se imprime aquí.
for(I = 0; I lt row; i) printf ("f ", a[I][col-1]);
//Puedes dar varios Uno -asignación de matriz dimensional.
}