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 un fichier .txt dans le but de faire des calculs mathématique


Sujet :

C

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Lire un fichier .txt dans le but de faire des calculs mathématique
    Bonjour à Tous,

    J'ai essayé d'écrire un code qui permet d'ouvrir un fichier où je sauvegarde des résultats numérique tel que:

    1 1e-2 1e-6
    2 5e-2 2e-6
    1 7e-4 3e-1

    Le but de ce code est de faire la somme [0][0]+[1][0]+[2][0] = 1+2+1 (par la suite d'autre opération mathématique)

    ci-dessous mon 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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
     
    struct input_data
    {
    float data[3][3];
    };
     
    struct input_data input_data_tab[3] ;
     
    int main(void)
    {
    		FILE *input_data;
    		float operation;
     
    		input_data=fopen("DONNEE.txt","r");
    		if (input_data==NULL) 
    		{
    			printf("the input data is not ready \n");
    		}
     
    		else
    		{
    		fscanf(input_data,"%.6f",input_data_tab[0].data[0][0]);
    		printf("N1 = %.6f \n",input_data_tab[0].data[0][0]);
     
    		fscanf(input_data,"%.6f",input_data_tab[1].data[1][0]);
    		printf("N2 = %.6f \n",input_data_tab[1].data[0][0]);
     
    		fscanf(input_data,"%.6f",input_data_tab[2].data[2][0]);
    		printf("N3 = %.6f \n",input_data_tab[2].data[0][0]);
     
    		operation  =  input_data_tab[0].data[0][0]+input_data_tab[1].data[1][0]+input_data_tab[2].data[2][0];
    		printf("%.6f \n",operation);
    		system("PAUSE");
    		fclose(input_data);
    		}
     
    	return 0;
    }

    Le résultats obtenu est bizarre:
    N1 = 0.000000
    N2 = 0.000000
    N3 = 0.000000
    0.000000

    par contre les valeurs de N1 , N2 et N3 sont différentes de 0!!!!

    Merci pour vos réponses

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

    Ton fichier contient des valeurs sous format "entier" et exponentiel, %.6f n'est donc pas adapté, c'est %e dont tu as besoin.

    D'autre part, c'est l'adresse qu'il faut rentrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fscanf(input_data,"%e",&input_data_tab[0].data[0][0]);
    fscanf(input_data,"%e",&input_data_tab[1].data[1][0]);
    fscanf(input_data,"%e",&input_data_tab[2].data[2][0]);
    et afficher les bonnes valeurs pourra aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("N2 = %.6f \n",input_data_tab[1].data[1][0]);
    printf("N3 = %.6f \n",input_data_tab[2].data[2][0]);

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Si je veux faire un test sur la deuxième ligne que je dois faire?
    j'ai essayé la méthode suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i=0; i<3; i++) {  
     if(input_data_tab[1].data[1][0] = 1)  
            {  
            printf("Number of inductor = %.f \n", input_data_tab[0].data[0][i]);  
            }  
    }
    Mais à l'affiche, j'ai eu toute les valeurs de input_data_tab[0].data[0][i]) !!!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pour effectuer une comparaison, et non une affectation, on utilise l'opérateur ==
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(input_data_tab[1].data[1][0] == 1)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Merciiii

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/07/2010, 14h39
  2. comment lire un fichier txt dans j2me
    Par aitbouhou dans le forum Java ME
    Réponses: 2
    Dernier message: 06/08/2008, 21h31
  3. Réponses: 43
    Dernier message: 04/04/2007, 12h49
  4. [Débutant] Lire plusieurs fichiers txt dans un répertoire
    Par leneuf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/10/2006, 12h39
  5. [JAR] Lire un fichier txt dans un Jar
    Par flzox dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 28/08/2006, 01h30

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