Fonction void ecrire en C !

Fermé
julie - 1 juin 2009 à 11:13
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 1 juin 2009 à 11:51
Bonjour,

PROBLÈME PRINCIPAL : écrire dans un fichier ( ici je donne mon exemple mais en général c'es t quoi la fonction pour écrire dans un fichier c'es tca que je cherche à faire )

Je dois écrire une fonction VOID ECRIRE (VECT, VECT Y ,INT N) qui doit permettre d'écrire deux vecteur de n éléments sur 2 colonnes séparé par un point virgule dans un fichier ( qui s'apellera donnes.txt )


j'ai pensé à

void ecrire ( vect, vect y ,int n){


FILE *F=NULL;
f=fopen("donnes.txt","w");

for(i=0;i<n;i++){

fprintf(F"%f\t%f\n",t[i],y[i])

}

LE PROBLEME c'est qu'il ne passe rien ( j'ai même essayé d'écrire dans un ficher déja existant ca écrit rien du tout )

quelqun aurait une idée merci d'avance :)
A voir également:

2 réponses

C'est un bon début mais..
Le 1er paramètre de ta fonction devrait être vect t et non pas vect tout court
Il faut respecter la casse dans les noms de variables : ton pointeur de fichier s'appelle F ou f, mais pas tantôt l'un tantôt l'autre
Il ne faut pas oublier la virgule pour séparer les paramètres de fprintf
Il ne faut pas oublier de fermer le fichier
Si tu veux séparer tes variables par un point virgule, il ne faut pas mettre une tabulation

Voilà en première lecture, mais il y a peut-être autre chose
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
1 juin 2009 à 11:51
Salut,

Un exemple pour t'inspirer
lami20j@debian:~/trash/ccm_c$ cat write2file.c
#include<stdio.h>
#include<stdlib.h>

void ecrire(float* t, float* y, int n);
int main()
{
  int n,i;
  float* t;
  float* y;
  printf("Entrez la taille : ");
  scanf("%d",&n);

  t=malloc(sizeof(float) * n);
  y=malloc(sizeof(float) * n);

  for(i=0;i<n;++i){
    t[i]=i + 0.1;
    y[i]=i + 0.2;
  }
  ecrire (t,y,n);
  free(t);
  free(y);
  return 0;
}


void ecrire (float* t,float* y,int n){
  FILE *F;
  int i;
  F=fopen("vecteur.txt","w");
  for(i=0;i<n;i++)
    fprintf(F,"%f\t%f\n",t[i],y[i]);
  fclose(F);
}
lami20j@debian:~/trash/ccm_c$ gcc write2file.c
lami20j@debian:~/trash/ccm_c$ ./a.out
Entrez la taille : 5
lami20j@debian:~/trash/ccm_c$ cat vecteur.txt
0.100000        0.200000
1.100000        1.200000
2.100000        2.200000
3.100000        3.200000
4.100000        4.200000
0