probleme pour sortir du programme

probleme pour sortir du programme - C++ - Programmation

Marsh Posté le 07-03-2003 à 20:46:35    

salut tous  
voila j'ai fait programme pour saisir des informations et les mettre dans un fichier txt mais quand je lance le programme je peut plus en sortir et le programme ecrit rien dans le fichier .txt

Code :
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define VRAI 1
  4. typedef struct
  5. {
  6. char question[250];
  7. char repa[80];
  8. char repb[80];
  9. char repc[80];
  10. char repd[80];
  11. char bon_rep[80];
  12. } enregistrement;
  13. enregistrement lire_entree( enregistrement ques_rep);
  14. void ecri_fichier(enregistrement ques_rep);
  15. FILE *fi;
  16. void main(void)
  17. {
  18. int suite_fichier = VRAI;
  19. enregistrement ques_rep;
  20. fi = fopen("quest_rep.txt","w" );
  21. while (suite_fichier)
  22. {
  23. printf("\n question (taper /'1'/ " );/*c ici que ca doit cloché*/
  24. scanf("%[^\n]",ques_rep.question);
  25. fprintf(fi,"\n%s\n",ques_rep.question);
  26. if (strcmp(ques_rep.question, "1" ) == 0)
  27. break;
  28. ques_rep = lire_entree(ques_rep);
  29. ecri_fichier(ques_rep);
  30. }
  31. fclose(fi);
  32. }
  33. enregistrement lire_entree(enregistrement ques_rep)
  34. {
  35. printf(" repa " );
  36. scanf(" %[^\n]", ques_rep.repa);
  37. printf(" repb " );
  38. scanf(" %[^\n]", ques_rep.repb);
  39. printf(" repc " );
  40. scanf(" %[^\n]", ques_rep.repc);
  41. printf(" repd " );
  42. scanf(" %[^\n]", ques_rep.repd);
  43. printf(" bonne reponse " );
  44. scanf(" %[^\n]", ques_rep.bon_rep);
  45. return(ques_rep);
  46. }
  47. void ecri_fichier(enregistrement ques_rep)
  48. {
  49. fprintf(fi, "%s\n", ques_rep.repa);
  50. fprintf(fi, "%s\n", ques_rep.repb);
  51. fprintf(fi, "%s\n", ques_rep.repc);
  52. fprintf(fi, "%s\n", ques_rep.repd);
  53. fprintf(fi, "%s\n", ques_rep.bon_rep);
  54. return;
  55. }


en fait quand on tape un on doit arreter mais le prog ne s'arrete pas quand on tape '1' que dois-je faire?

Reply

Marsh Posté le 07-03-2003 à 20:46:35   

Reply

Marsh Posté le 07-03-2003 à 20:48:57    

ocin2002 a écrit :


 
scanf("%[^\n]",&ques_rep.question);
 


 
A tout hasard


Message édité par ToxicAvenger le 07-03-2003 à 20:49:57
Reply

Marsh Posté le 07-03-2003 à 20:50:31    

ToxicAvenger a écrit :


 
A tout hasard

pas de chance

Reply

Marsh Posté le 07-03-2003 à 20:51:39    

tu ferais boen de regarder si question ne contiendrait pas plutot "1\n" au lieu de "1"
 
sinon tu peux détailler l'utilisation de tes 2 fonctions, j'ai l'impression qu'il y des choses à revoir

Reply

Marsh Posté le 07-03-2003 à 20:55:31    

Code :
  1. enregistrement lire_entree(enregistrement ques_rep)
  2.   {
  3.     printf(" repa " );
  4.     scanf(" %[^\n]", ques_rep.repa);
  5.     printf(" repb " );
  6.     scanf(" %[^\n]", ques_rep.repb);
  7.     printf(" repc " );
  8.     scanf(" %[^\n]", ques_rep.repc);
  9.     printf(" repd " );
  10.     scanf(" %[^\n]", ques_rep.repd);
  11.     printf(" bonne reponse " );
  12.     scanf(" %[^\n]", ques_rep.bon_rep);
  13.     return(ques_rep);
  14.   }


 
moi je verrai plutot
 
 

Code :
  1. void lire_entree(enregistrement *ques_rep)
  2.   {
  3.     printf(" repa " );
  4.     scanf(" %[^\n]", ques_rep->repa);
  5.     printf(" repb " );
  6.     scanf(" %[^\n]", ques_rep->repb);
  7.     printf(" repc " );
  8.     scanf(" %[^\n]", ques_rep->repc);
  9.     printf(" repd " );
  10.     scanf(" %[^\n]", ques_rep->repd);
  11.     printf(" bonne reponse " );
  12.     scanf(" %[^\n]", ques_rep->bon_rep);
  13.    }


 
et  

Code :
  1. void ecri_fichier(enregistrement ques_rep)
  2.   {
  3.     fprintf(fi, "%s\n", ques_rep.repa);
  4.     fprintf(fi, "%s\n", ques_rep.repb);
  5.     fprintf(fi, "%s\n", ques_rep.repc);
  6.     fprintf(fi, "%s\n", ques_rep.repd);
  7.     fprintf(fi, "%s\n", ques_rep.bon_rep);
  8.    
  9.    
  10.     return;
  11.   }


 
 

Code :
  1. void ecri_fichier(const enregistrement *ques_rep)
  2.   {
  3.     fprintf(fi, "%s\n", ques_rep->repa);
  4.     fprintf(fi, "%s\n", ques_rep->repb);
  5.     fprintf(fi, "%s\n", ques_rep->repc);
  6.     fprintf(fi, "%s\n", ques_rep->repd);
  7.     fprintf(fi, "%s\n", ques_rep->bon_rep);
  8.   }


 
bien sur tous tes printf sont groupables en un seul pour plus de performances.
 
tres moche ta variable globale


Message édité par Taz le 07-03-2003 à 20:56:04
Reply

Marsh Posté le 07-03-2003 à 21:14:30    

Code :
  1. enregistrement lire_entree(enregistrement ques_rep)
  2. {
  3. printf(" repa " );
  4. scanf(" %[^\n]", ques_rep.repa);
  5. ...
  6. printf(" bonne reponse " );
  7. scanf(" %[^\n]", ques_rep.bon_rep);
  8. return(ques_rep);
  9. }


c'est pour saisir les autres informations (repA,B,C,D...)

Code :
  1. void ecri_fichier(enregistrement ques_rep)
  2. {
  3. fprintf(fi, "%s\n", ques_rep.repa);
  4. ...
  5. fprintf(fi, "%s\n", ques_rep.bon_rep);
  6. return;
  7. }


c'est pour ecrire dans le fichier txt
 

Reply

Marsh Posté le 07-03-2003 à 21:16:43    

voir mon post précédent. les copies c'est bien, mais fo pas en abuser

Reply

Marsh Posté le 07-03-2003 à 21:29:07    

Quel post precedent ?
c toi qui abuse  
c toi qui dit que :

Citation :

tres moche ta variable globale


moi je m'en fou du moment que ca marche
 :kaola:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed