Ecrire sur la deuxieme ligne d'un fichier texte

igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005 - 15 avril 2005 à 10:27
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006 - 15 avril 2005 à 14:11
salut voila j'ai fait une fonction qui ecrit dans un fichier texte et je voudrais a chaque fois que j'appelle cette fonction ajouter les valeures sur la ligne suivante mais je ne sais pas comment faire

voici ma fonction:

void transfert_erreur(const char *chemin, int nb_ligne,long erreur)
{
FILE *fp;
fp = fopen(chemin, "w+");
if (fp)
{
fputs("debut_donnees",fp);
fprintf(fp,"\n");
for (i=0;i<nb_ligne;i++)
{
//fwrite(&buf[i],sizeof(double),1,fp );
printf("addresse %d :",i);


printf("%d \n",erreur);


fprintf(fp,"%d\n",erreur);
}
fputs("fin_donnees",fp);
fclose(fp);
}
}

merci

3 réponses

romydamour Messages postés 30 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 juillet 2005
15 avril 2005 à 11:33
salut igorpastis, si je me trompe pas, on doit se connaitre master SII, j'étais ton voisin de
gauche, ou alors au dessus de Vince. Pour ton problème si c'est passé à la ligne suivante
que tu cherche, tu ouvres ton fichier et tu te places à la fin en utilisant fseek ou lseek. J'ai eu
ce problème là dernièrement et j'ai utilisé fseek, cf mon bou de code que j'ai mis dans une quection
un peu plus bas (ça doit être comment se mettre à la ligne aprés chaque mot, ca doit être le 12 ou
13 avril). Par contre si tu sais justement comment on passe à la ligne aprés chaque fois que l'on
rencontre" (" ou ")" ou "," ou des crochets ou autres, je te serais vraiment reconnaissant.
a+ romy
0
igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005
15 avril 2005 à 11:57
hey salut mon bon ROMY comment ca va ??

bon pour ton probleme j'ai vu un code qui permet de rechercher un caractere dans un fichier a mon avis ca va t'aider, voila la page.

http://www.cppfrance.com/code.aspx?ID=20134

au fait ca avance le OuiOui ?
ton bibi t'as fillé le prog ou koi ?
0
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006
15 avril 2005 à 14:11
Il te suffit de modifier ton code comme suit. Les epxlication sont données plus bas (extrait de Le langage C de Henri Garreta. qui est éléchargeable sur developpez.com).

void transfert_erreur(const char *chemin, int nb_ligne,long erreur)
{
FILE *fp;
fp = fopen(chemin, "a+");
if (fp)
{
fputs("debut_donnees",fp);
fprintf(fp,"\n");
for (i=0;i<nb_ligne;i++)
{
//fwrite(&buf[i],sizeof(double),1,fp );
printf("addresse %d :",i);
printf("%d \n",erreur);


fprintf(fp,"%d\n",erreur);
}
fputs("fin_donnees",fp);
fclose(fp);
}
}
FILE *fopen(const char *nom, const char *mode)
Cette fonction ouvre le fichier dont le nom est indiqu´e par la chaˆıne nom et rend un pointeur sur le flot
correspondant, ou NULL si l’op´eration a ´echou´e (fichier absent, etc.). Le nom doit ˆetre correct pour le
syst`eme d’exploitation sous-jacent ; cela ne regarde pas le langage C.
Les valeurs permises pour mode sont :
"r" (read) ouverture d’un fichier. Le fichier doit exister ; son contenu n’est pas d´etruit. Le descripteur du
flot cr´e´e est positionn´e en lecture et au d´ebut du fichier. En principe, seules les op´erations de lecture
sont permises sur ce flot.
"r+" comme "r", mais les op´erations d’´ecriture sont permises aussi.
"w" (write) cr´eation d’un fichier. Le fichier peut exister ou non ; s’il existe, son contenu est enti`erement
effac´e. Le descripteur du flot cr´e´e est positionn´e en ´ecriture et au d´ebut du fichier (qui est vide). En
principe, seules les op´erations d’´ecriture sont permises sur ce flot.
"w+" comme ”w”, mais les op´erations de lecture sont permises aussi.
"a" (append) allongement d’un fichier. Le fichier existe ou non ; s’il existe, son contenu n’est pas effac´e. Le
descripteur du flot cr´e´e est positionn´e en ´ecriture et `a la fin du fichier. Seules les op´erations d’´ecriture
sont permises.
"a+" comme ”a”, mais les op´erations de lecture sont permises aussi.
Si l’on envisage d’utiliser le fichier en mode binaire, il faut en principe ajouter la lettre b au mode ("r+b"
ou "rb+", "w+b" ou "wb+", etc.). Il n’est pas exclu que sur un syst`eme d’exploitation particulier cela n’ait
aucune utilit´e.
Remarque. Sur l’int´erˆet qu’il peut y avoir `a effectuer des lectures et des ´ecritures sur le mˆeme fichier,
voir les remarques faites `a la section 7.4.3 `a propos des fichiers en acc`es relatif.

Bon courage.
0
Rejoignez-nous