IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lire une matrice de doubles


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Lire une matrice de doubles
    Bonsoir,
    voila mon problème, je veux lire une matrice de grande taille qui contient des doubles. mais mon programmes affiches l'erreur suivante lors de la compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test\main.c:14:16: attention : format '%g' expects argument of type 'float *', but argument 3 has type 'double *' [-Wformat]
    Voici le programme et la matrice que je veux la lire puis l'afficher.
    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
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define max(a,b)((a)>(b)?(a):(b))
    #define taille 201
     
     
    void lire(FILE * aLire,double** mat)
    {
        int i, j ;
        for (i = 1; i < taille; i++)
        {
            for (j =1 ; j < taille; j++)
                fscanf(aLire, "%g", & mat[i][j]);
            fscanf(aLire, "\n");
        }
    }
    double fh(int i,int j)
    {
        double **B;
        int a=0;
        int p,g;
        B=(double **) malloc(250*sizeof(double*));
        size_t k;
        for (k=0; k<250; k++)
        {
            B[k]=(double*) malloc(250*sizeof(double));
        }
        FILE * aLire2 = fopen("C:\...fichier.txt", "r");
        if(aLire2 == NULL)
        {
            printf("Le fichier n'existe pas \n");
            exit(-1);
        }
         else
         {
            lire (aLire2,B);
            printf("matrice 2\n");
            for (p = 1 ; p <taille; p++)
            {
                for (g = 1;g < taille; g++)
                    printf("%8.2g", B[p][g]);
                printf("\n");
            }
     
        }
        fclose(aLire2);
        return a;
    }
     
    int main(void)
    {
        double **A;
        int i,j;
        double d;
     
        int ligne=0, colonne=0;
     
     
        printf("entrer la ligne\n");
        scanf("%d",&ligne);
        printf("entrer la colonne\n");
        scanf("%d",&colonne);
        A=(double **) malloc(ligne*sizeof(double*));
        size_t k;
        for (k=0; k<ligne; k++)
        {
          A[k]=(double*) malloc(colonne*sizeof(double));
        }
     
        freopen ("file.txt","w",stdout);
        FILE * aLire = fopen("C:\\...test.txt", "r") ;
         if(aLire == NULL)
        {
           printf("Le fichier n'existe pas");
        }
         else
        {
            lire (aLire, A);
            printf("matrice 1\n");
            for (i = 1 ; i <taille; i++)
            {
                for (j = 1;j<taille; j++)
                    printf("%8.2g", A[i][j]);
                printf("\n");
            }
            d=fh(200,200);
            printf("la valeur de d est %g\n",d);
     
        }
     
        fclose (stdout);
     
        return 0;
    }
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Il suffit de regarder le tableau de la documentation : il faut rajouter un 'l' devant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(aLire, "%lg", & mat[i][j]);

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2013
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    oui, merci de me répondre.
    l'erreur de compilation est résolue mais j'avais pas obtenu la même matrice lu comme celle dans "fichier.txt"
    voici le résultat dont j'avais obtenu
    j'avais pas su où est le problème
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Lire une matrice
    Par dalila555 dans le forum Simulink
    Réponses: 0
    Dernier message: 21/02/2011, 17h29
  2. Lire une matrice dans un fichier texte
    Par sfiliste dans le forum Fortran
    Réponses: 3
    Dernier message: 09/09/2010, 15h57
  3. Lire une matrice en C
    Par ikuzar dans le forum Débuter
    Réponses: 2
    Dernier message: 30/09/2009, 11h56
  4. Quelle composante utiliser pour lire une matrice
    Par Layla dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/02/2008, 12h31
  5. [SWING] remplir une jtable avec une matrice de double
    Par Psykorel dans le forum Composants
    Réponses: 3
    Dernier message: 04/01/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo