Enreg valeurs dans un fichier

kun.sasuke Messages postés 20 Statut Membre -  
Zep3k!GnO Messages postés 2049 Statut Membre -
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");

}
A voir également:

2 réponses

Zep3k!GnO Messages postés 2049 Statut Membre 200
 
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 Statut Membre 4
 
salut!
je ne connais la fonction fflush(), tu peux expliciter et je te remerci pour ta contribution
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
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