Lire un CSV et récupérer des nombres
Bonjour,
J'essaye de lire un fichier CSV et récupérer les valeurs puis en faire un tableau. Mais je pense avoir un problème de typage car lors de la lecture et au premier affichage j'ai bien récupéré mes valeurs. Je les insère ensuite dans un tableau, puis j'affiche mon tableau. Et là c'est la catastrophe...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 100
int main(int argc, char *argv[])
{
FILE* HPL_fichier = NULL;
FILE* CAS_fichier = NULL;
char buffer_lecture1[TAILLE_MAX] = "";
char buffer_lecture2[TAILLE_MAX] = "";
int n = 1;
int m = 1;
int i = 0;
const char s[2] = ";";
char *token1;
char *token2;
int hauteurs[20];
int largeurs[20];
int tailles[400][2];
HPL_fichier = fopen("HPL.csv", "r");
CAS_fichier = fopen("CASIERS.csv", "r");
if (HPL_fichier != NULL && CAS_fichier != NULL)
{
//définition des casiers envisagés-----------------
fgets(buffer_lecture1, TAILLE_MAX, CAS_fichier);//on prend une ligne du CSV
token1 = strtok(buffer_lecture1, s);//on la découpe selon les ;
while( token1 != NULL )
{
n++;
printf( " %s\n", token1 );//ici affichage impeccable
hauteurs[n] = (int) token1;
token1 = strtok(NULL, s);
}
hauteurs[0] = n;
n = 1;
fgets(buffer_lecture1, TAILLE_MAX, CAS_fichier);//on prend une ligne du CSV
token1 = strtok(buffer_lecture1, s);//on la découpe selon les ;
while( token1 != NULL )
{
n++;
printf( " %s\n", token1 );//ici affichage impeccable
largeurs[n] = (int) token1;
token1 = strtok(NULL, s);
}
largeurs[0] = n;
n = 1;
//création tableau --------------------------------------------------
for(n = 1 ; n < hauteurs[0] ; n++) {
for(m = 1 ; m < largeurs[0] ; m++) {
tailles[1][i] = hauteurs[n];
tailles[2][i] = largeurs[m];
printf("\nlargeur = %d | hauteur = %d\n", tailles[1][i], tailles[2][i] );//ici affichage qui ne veut plus rien dire...
i++;
}
}
}
else
{
printf("Il manque un fichier en entrée");
}
fclose(HPL_fichier);
fclose(CAS_fichier);
return 0;
} |