Bonjour,
J'aimerais allouer mon fichier dans une matrice. J'ai essayé de faire ça mais le résulta est que ça m'affiche à partir de la 2ème ligne du fichier et après ça bug.
Pourquoi ?
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
/* Fichiers d'en-tête */
#include <stdlib.h>    // Génération nbres aléatoires, allocation dynamique mémoire
#include <stdio.h>    //  Gestion erreurs et E/S (scanf, printf)
#include <math.h>	 //   Fonctions mathématiques
#include <string.h>
 
#define TAILLE_MAX  4700
 
// 1ère étape : Chargement du fichier IRIS DATA ==> pas OK
int main()
{
    /* Descripteur fichier */
    FILE* fichier = NULL;
 
    /* Ouverture fichier */
    fichier = fopen("iris_data.txt", "r+");
 
    if (fichier != NULL)
    {
        char chaine[TAILLE_MAX] = ""; // Chaîne vide de taille TAILLE_MAX
 
        while(fgets(chaine, TAILLE_MAX, fichier)!= NULL)  // On lit maximum TAILLE_MAX caractères du fichier, on stocke le tout dans "chaine"
        {
            // On peut lire et écrire dans le fichier
            printf("Le fichier IRIS DATA est ouvert \n");
 
            /*----------------- Etape 2 : Allocation mémoire--------------------*/
            /* Allocation mémoire d'un tableau de 100 valeurs flottantes */
            double** vect;
            if  ( ( vect =malloc(100*sizeof(**vect) ))== NULL)
            {
                printf("Il n'y a pas assez de mémoire !\n ");
                exit(EXIT_FAILURE);
            }
            printf("La memoire est allouee! \n");
            //exit(EXIT_SUCCESS);
 
 
 
            // indice
            int i=0;
            for (i=0; i<=149; i++)
            {
 
                printf("vecteur numero %d \n",i);
                printf("----------------------------------------\n");
 
                fscanf(fichier, "%lf ,%lf ,%lf ,%lf", &vect[i][0], &vect[i][1], &vect[i][2], &vect[i][3]);
                printf("Le vecteur de donnees %d est : %f,%f,%f,%f \n",i, vect[i][0], vect[i][1], vect[i][2], vect[i][3]);
            }
        }
    }
    else
    {
        // On affiche un message d'erreur si on veut
        printf("Impossible d'ouvrir le fichier iris_data.txt");
    }
 
    return 0;
}
Merci