Language C

Résolu
sernoss Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
sernoss Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
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

sernoss Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   2
 
Mon tableau résultat est d'une dimension
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
0
chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention   378
 
Salut,
C'est pas fscanf au lieu de scanf?
@+
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention  
 
Ah la belle coquille ^^· Ca m'apprendra à faire en live.
Merci ;-))).
0
sernoss Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   2
 
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;
}
0
the F Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   13
 
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sernoss Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   2
 
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;
}
0