Enreg valeurs dans un fichier

Fermé
kun.sasuke Messages postés 20 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 13 juin 2007 - 23 févr. 2006 à 17:06
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 24 févr. 2006 à 12:34
medames et messieurs
dans le code qui suit j'essaye d'ecrire 3 valeurs dans un fichier comme cela :
3 4 5
3 5 6
2 3 5
je veux arreter cet enregistrement l'une des 3 valeurs est = 0, ou en cas de fin de fichier. voilà
ce programme marche mais ne donne pas ce que je veux.
qu'est ce que vous me suggerez??

#include<stdio.h>
#include<malloc.h>




void Enrg_Liste(char *Fich){
FILE *F;
int a,b,c;
F=fopen(Fich,"w");
if(F == NULL){
printf(" !Erreur!\n");
}
else{
while(!EOF || a!=0 || b!=0 || c!=0){
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
fprintf(F,"%d %d %c \n",a,b,c);
fprintf(F," \n"); // je ne sais pas si je dois lui specifier le saut de ligne ou non???
}
printf(" !Enregistrement reussis!\n");
fclose(F);
}


}
void main ()
{
Enrg_Liste("text2.txt");

}

2 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 févr. 2006 à 12:09
salut, moi à première vue je dirai que c'est le while(!EOF || a!=0 || b!=0 || c!=0){ qui devrait plutot etre sous cte forme :
 while((!EOF) && ( a!=0) && (b!=0) &&( c!=0)){ 

Avec cette forme la, c'est dès que t'as une des tes conditions qui n'est plus vrai, on arrette.
et puis je te conseillerai, ca mange pas de pain de faire un fflush(stdin) avant tes scanf..

Voilà, bon courage.
0
kun.sasuke Messages postés 20 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 13 juin 2007 4
24 févr. 2006 à 12:16
salut!
je ne connais la fonction fflush(), tu peux expliciter et je te remerci pour ta contribution
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 févr. 2006 à 12:34
Ouaip, fflush(stdin) c'est juste une fonction qui permet de vider le tampon d'entrée (car on a spécifier stdin) de la voie série, ca te permet d'être sur de bien récupérer tes valeurs saisie sans parasites (au cas ou le buffer aurait des restes des sasies préalables..)
Voilà m'sieur :D
Bonne journée !
0