Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2030 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  probleme je ne peux pas le definir en un mot (code simple)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme je ne peux pas le definir en un mot (code simple)

n°341070
wouschy
Posté le 24-03-2003 à 09:35:24  profilanswer
 

bonjour tout le monde le plus simple est de vous donner le programme donc le voici (le probleme je vous le donne aprés le prog ;)  
 

Code :
  1. [cpp]#include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. FILE *ptr;
  5. void main ()
  6. {
  7. char ch;
  8. char question[50];
  9. char question1[1];
  10. ptr=fopen("histoire.txt","rb" );
  11. fgets(question,50,ptr);
  12. printf("%s",question);
  13. fgets(question,50,ptr);
  14. printf("%s",question);
  15. fgets(question,50,ptr);
  16. printf("%s",question);
  17. fgets(question,50,ptr);
  18. printf("%s",question);
  19. fgets(question,50,ptr);
  20. printf("%s",question);
  21. fgets(question,50,ptr);
  22. printf(" Entrez votre reponse\n" );
  23. scanf("%c",&ch);
  24. if(ch==question[0])
  25. printf("bonne reponse" );
  26. else {
  27. printf(" mauvaise reponse" );
  28. }
  29. }


 
voici le programme et maintenant le fichier texte que vous devez mettre dans le même repertoire que le prog.
 
Debut de la deuxieme guerre mondiale
A - 1812
B - 1976
C - 1940
c
Qui est le president de la republique Française?
A - Le Pen
B - Jacques Chirac
C - Miesse Alick
B
 
copier coller dans le bloc note et nommé le fichier histoire  
 
donc voila mon probleme:
   le programme me retourne aucune erreur il fonctionne je le lance tout marche c'est génial le hic c'est lorsque je rentre ma question que je mette la bonne ou la mauvaise reponse il me sor toujours "mauvaise reponse" et ma question est pourquoi le prog me fait ca et comment resoudre ce probleme.  
 
petite indication pour comprendre plus vite normalement la reponse que je tape et comparé si la reponse et la meme il doit me dire rponse bonne sinon reponse fausse!!!  voila aidé moi plz merci.

mood
Publicité
Posté le 24-03-2003 à 09:35:24  profilanswer
 

n°341076
chrisbk
-
Posté le 24-03-2003 à 09:38:21  profilanswer
 

faudra que tu m'explique comment ce programme est cense marcher parce que la c normal que ca foire compltement

n°341090
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-03-2003 à 10:06:14  profilanswer
 

faudra que tu revoies le concept de tableau en C, parce que là, c'est vraiment n'importe quoi ! j'ai lu ton code très rapidement, mais y'a un truc qui m'a marqué !  

Code :
  1. if(ch==question[0])


tu ne fais que comparer un caractère avec un autre, et pas une phrase complète !
et la comparaison de chaines de caractères en C se fait avec strcmp() !


Message édité par Harkonnen le 24-03-2003 à 10:08:14

---------------
J'ai un string dans l'array (Paris Hilton)
n°341103
gatorette
Posté le 24-03-2003 à 10:24:35  profilanswer
 

Harkonnen a écrit :

tu ne fais que comparer un caractère avec un autre, et pas une phrase complète !


C'est peut être normal. En effet juste avant il lit la dernière ligne d'une question (pour la question "Début de la deuxième guerre mondiale", la ligne avec 'c';). Il cherche donc à comparer le caractère entré avec ce caractère lu (qui est le premier caractère de la ligne soir question[0]).


---------------
each day I don't die is cheating
n°341123
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-03-2003 à 10:38:45  profilanswer
 

gatorette a écrit :


C'est peut être normal. En effet juste avant il lit la dernière ligne d'une question (pour la question "Début de la deuxième guerre mondiale", la ligne avec 'c';). Il cherche donc à comparer le caractère entré avec ce caractère lu (qui est le premier caractère de la ligne soir question[0]).


effectivement, j'avais pas vu qu'il mettait la réponse sur la dernière ligne.
mais je vois pas l'utilité de tous les fgets au début ! ça remplit le buffer 6 fois avec les mêmes données !
et le strcmp(), c'est pas fait pour les chiens.


---------------
J'ai un string dans l'array (Paris Hilton)
n°341143
gatorette
Posté le 24-03-2003 à 10:48:43  profilanswer
 

Chez moi ça marche avec juste une petite modification : Tu as un couple fgets/fprintf en trop ! Le mieux est encore de faire du pas à pas pour te rendre compte des problèmes qui extistent.


---------------
each day I don't die is cheating
n°341168
wouschy
Posté le 24-03-2003 à 11:08:41  profilanswer
 

ok quel fgets é en trop???
hé si il y a autant de fgets c'est pour qu'il affiche la question mais qu'il n'affiche pas la reponse ensuite il compare la reponse a la reponse saisi .
si j'enleve un fgets sa marche??

n°341173
gatorette
Posté le 24-03-2003 à 11:14:56  profilanswer
 

On va reprendre :

Code :
  1. int main(int argc, char* argv[])
  2. {
  3. FILE *ptr;
  4. char ch;
  5. char question[50];
  6. ptr=fopen("histoire.txt","rb" ); // pourquoi ouvrir en binaire ?
  7. fgets(question,50,ptr); // je lis "Debut de la deuxieme guerre mondiale"
  8. printf("%s",question); // J'affiche "Debut de la deuxieme guerre mondiale"
  9. fgets(question,50,ptr); // Je lis "A - 1812"
  10. printf("%s",question); // J'affiche "A - 1812"
  11. fgets(question,50,ptr); // Je lis "B - 1976"
  12. printf("%s",question); // J'affiche "B - 1976"
  13. fgets(question,50,ptr); // Je lis "C - 1940"
  14. printf("%s",question); // J'affiche "C - 1940"
  15. fgets(question,50,ptr); // Je lis "c"
  16. printf(" Entrez votre reponse\n" );
  17. scanf("%c",&ch); // J'attend un caractère...
  18. if(ch==question[0]) // si le caractère entré est égal à 'c'
  19. printf("bonne reponse" );
  20. else {
  21. printf(" mauvaise reponse" );
  22. }
  23. return 0;
  24. }


 
Mais c'est vrai que c'est pas très élégant comme programme...


---------------
each day I don't die is cheating
n°341198
wouschy
Posté le 24-03-2003 à 11:34:09  profilanswer
 

:sol: cool merci beaucoup!!!!!! tu ferais comment pour faire plus joli???

n°343822
polo021
Posté le 26-03-2003 à 14:15:50  profilanswer
 

wouschy a écrit :

:sol: cool merci beaucoup!!!!!! tu ferais comment pour faire plus joli???


 :pfff:  
 

Code :
  1. int main(int argc, char* argv[])
  2.   {
  3.     FILE *ptr;
  4.     char ch;
  5.     char question[50];
  6.    
  7.     ptr=fopen("histoire.txt","rb" ); // pourquoi ouvrir en binaire ?
  8. for (int i=0;i<4;i++)
  9. {
  10. fgets(question,50,ptr); 
  11. printf("%s",question);
  12. }
  13. fgets(question,50,ptr);
  14.     printf(" Entrez votre reponse\n" );
  15.     scanf("%c",&ch); // J'attend un caractère...
  16.     if(ch==question[0]) // si le caractère entré est égal à 'c'
  17.       printf("bonne reponse" );
  18.     else {
  19.       printf(" mauvaise reponse" );
  20.     }
  21.    
  22.     return 0;
  23.   }


 
deja rien que ca c'est un peu mieux


Message édité par polo021 le 26-03-2003 à 14:16:44
mood
Publicité
Posté le 26-03-2003 à 14:15:50  profilanswer
 

n°343831
polo021
Posté le 26-03-2003 à 14:20:17  profilanswer
 

ou :

Code :
  1. int main(int argc, char* argv[])
  2. {
  3. FILE *ptr;
  4. char ch;
  5. char question[50];
  6. strcpy(question,"Bienvenue.\n----------\n\n" );
  7. ptr=fopen("histoire.txt","rb" ); // pourquoi ouvrir en binaire ?  
  8. for (int i =0; i<5;i++)
  9. {
  10. printf("%s",question);
  11. fgets(question,50,ptr);
  12. }
  13. printf(" Entrez votre reponse\n" );
  14. scanf("%c",&ch); // J'attend un caractère...  
  15. if(ch==question[0]) // si le caractère entré est égal à 'c'  
  16. printf("bonne reponse" );
  17. else {
  18. printf(" mauvaise reponse" );
  19. }
  20. return 0;
  21. }


Message édité par polo021 le 26-03-2003 à 14:22:36

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  probleme je ne peux pas le definir en un mot (code simple)

 

Sujets relatifs
probleme mail sous myphpnuke[PHP / mySQL] Problème de création d'une table
login simple[C] : Problème de paramètres avec fonctions qui appelent fonctions
Problème ayant un lien avec les sessionsproblème avec le navig dans un formulaire
probleme avec ListCellRendererGrave probleme de disque dur et MYSQL.
[Delphi perso edition] Probleme avec la manip de fichiers.J'ai un problème de logique avec les sessions
Plus de sujets relatifs à : probleme je ne peux pas le definir en un mot (code simple)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR