Language C

Résolu
Bonjour,
je veux lire dans un fichier.txt "tableau de valeur à une dimension " et écrire dans un autre fichier le tableau résultat .
Merci d'avance.
-------------------------------------------------------------

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Merci à tous , j'ai résolu mon probleme. voila ce que j'ai voulé faire pour ceux qui veulent travailler avec un fichier de données entiers.

    // programme Filtre signale

    /* Ce programme calcule le moyen (pas=nombre d'ittération) de "pas" valeurs d'un tableau de n dimension (fichier test)
    et enregistre le resultat dans un fichier "resultat". Il suffit de changer la dimension des données "n" et le pas "pas"*/
    // exemple: test.txt v=[1 2 3 4];===> resultat.txt x=[1.5 1.5 3.5 3.5]

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #define n 30001 //dimension données
    #define pas 100//pas d'échantillonage

    main()
    {
    FILE* fichier = NULL;
    int i,j,a;
    float v[n] = {0}; // Tableau données

    float som;
    float x[4]; // tableau résultat

    som=0;j=1;a=0;

    //ouverture fichier de données et enregistrement dans v[i]
    fichier = fopen("test.txt", "r");
    if (fichier != NULL)
    {
    for (i=0; i<n; i++)
    fscanf(fichier, "%f", &v[i]);
    fclose(fichier);
    }

    //traitement de données (clacule moyen signale)
    for(i=0;i<n+1;i++)
    {
    if (i<j*pas)
    som=som+v[i];
    else
    {
    for(a=i;a>=i-pas;a--)
    x[a]=som/pas;//remplissage tableau resultat
    som=0;
    j++;i--;a++;
    }
    }

    //ecriture dans le fichier resultat
    fichier = fopen("resultat.txt", "w");
    if (fichier != NULL)
    {
    // On l'écrit dans le fichier
    for (a=0; a<n; a++)
    fprintf(fichier,"%f \n ",x[a]);
    fclose(fichier);
    }

    //affichage résultat
    printf("Tableau resultat :\n");
    for (a=0; a<n; a++)
    printf("%f ", x[a]);
    printf("\n");

    getchar();

    return 0;
    }
    1. Bonjour :
      il paraot des la prmiere lecture que dans cette section il y a l'erreure :
      §§§§§§§§§§§§§§§§§§§§§§
      return(EXIT_FAILURE);
      }
      fread(tab2, NB * sizeof(int), 1, f_in); (ici precisement )
      fclose(f_in);
      for (i = 0 ; i < NB; i++)
      :::::::::::::::::::::::::::::::

      Si tu ne la trouve pas tout seul dit le ,
      NB : je vais tester ton prog sur compilateur pour le corriger !
      1. ben voila tout d'abord mon programme de lecture dans un fichier qui lit pas correctement la liste des nombres réel que j'ai mis dans mon fichier nommé "sortie" qui comprend quartes valeurs (exp: 2 3 4 6) . Merci

        #include <stdio.h>
        #include <stdlib.h>

        #define NB 4
        #define F_SORTIE "sortie"

        int main(void)
        {
        FILE *f_in, *f_out;
        int *tab2;
        int i;

        /* lecture dans F_SORTIE */
        if ((f_in = fopen(F_SORTIE, "r")) == NULL)
        {
        fprintf(stderr, "\nImpossible de lire dans le fichier %s\n",F_SORTIE);
        return(EXIT_FAILURE);
        }
        fread(tab2, NB * sizeof(int), 1, f_in);
        fclose(f_in);
        for (i = 0 ; i < NB; i++)
        printf("%d\t",tab2[i]);
        printf("\n");
        scanf("%d",i);
        return 0;
        }
        1. Contributeur
          Salut,
          Tu te crées ton tableau.
          Ensuite tu effectues une boucle for sur le nombre d'éléments du tableau et tu utilises scanf(fp,"%d",tab+i); pour insérer tes valeurs dans ton tableau.

          Cdlt
          1. Salut,
            C'est pas fscanf au lieu de scanf?
            @+
          2. Contributeur
            @chukaAh la belle coquille ^^· Ca m'apprendra à faire en live.
            Merci ;-))).