> Tous les forumsAutres langages

 Programme en C (exe)
Statut du sujet : NON RESOLU Imprimer
 ms-dos
  Posté le 23/10/2007 @ 02:06  
 Petit astucien

55 Messages

Bonjour à tous, j'ai enfin fini mon premier programme en C. Je travaille sous linux, alors lorsque je compile mon fichier (gcc), j'obtiens un executable pour linux. Alors j'execute dans le terminal, tout va bien mon programme fonctionne. Mais lorsque je veux compiler pour windows donc un fichier .exe, je compile alors avec gcc
gcc prog.c -o prog.exe

Mais lorsque j'execute ce fichier (prog.exe) sur Windows...Ms-Dos s'ouvre automatiquement et se referme dans l'instant qui suit. Sans même affichier un message ? Donc je peux pas voir mon programme

Auriez vous une idée ?

Voici le code

Code C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main( int argc, char** argv )
  5. {
  6. long nombreMystere = 0, nombreEntre = 0;
  7. long nombreMAX, nombreMIN;
  8. int continuerPartie = 1, plus, moins;
  9. plus = "C'est plus !!\n\n";
  10. moins = "C'est moins !!\n\n";
  11. while (continuerPartie)
  12. {
  13. system("cls");
  14. printf ("********************************************************************\n");
  15. printf ("********************************************************************\n");
  16. printf ("********************************************************************\n");
  17. printf ("****************Jeu realise par --------------- ****************\n");
  18. printf ("********************************************************************\n");
  19. printf ("********************************************************************\n");
  20. printf ("********************************************************************\n\n\n");
  21. printf ("Le but du jeu: Il faut trouver le nombre que le PC a choisi\nIl est situé entre 1 et 100\n\n");
  22. long nombreMAX = 100, nombreMIN = 1;
  23. srand(time(NULL));
  24. nombreMystere = (rand() % (nombreMAX - nombreMIN + 1)) + nombreMIN;
  25. long compteur = 0;
  26. do
  27. {
  28. compteur++;
  29. printf("Quel est le nombre ? ");
  30. scanf("%ld", &nombreEntre);
  31. if (nombreEntre > nombreMAX)
  32. {system("cls");
  33. printf ("****************************************************************************\n");
  34. printf ("****************************************************************************\n");
  35. printf ("****************************************************************************\n");
  36. printf ("***Yo, j'ai bien l'impression que tu es dingues.Va falloir que tu quittes***\n");
  37. printf ("****************************************************************************\n");
  38. printf ("****************************************************************************\n");
  39. printf ("****************************************************************************\n");
  40. sleep(4);
  41. return(0);}
  42. else if (nombreMystere < nombreEntre)
  43. printf("%s", moins);
  44. else if (nombreMystere > nombreEntre)
  45. printf("%s", plus);
  46. else if (nombreMystere = nombreEntre)
  47. {
  48. system("cls");
  49. printf ("\nBravo, vous avez trouve le nombre mystere (%ld) !!!\n\n", nombreMystere);
  50. Switch (compteur)
  51. {
  52. case 1:
  53. printf("Bravo, un seul coup vous a suffit a trouver le bon nombre !\n");
  54. break;
  55. default:
  56. printf("Il vous a fallu %ld coups pour le trouver \n", compteur);
  57. }
  58. printf ("Refaire une partie? (1 : oui, 0 : non)");
  59. scanf("%ld", &continuerPartie);
  60. printf("\n\n");
  61. }
  62. } while (nombreEntre != nombreMystere);
  63. }
  64. }

 Afficher le profil de ms-dosEnvoyer un message privé à ms-dos
 
 
Publicité
 Nicolol  Posté le 23/10/2007 à 12:19  
Petit astucien

60 Messages

Bonjour ms-dos

Je pense qu'il suffit de rajouter la ligne : system("pause"); juste avant l'accolade fermante du main

J'espere que ca repond a ta question

Afficher le profil de Nicolol Voir la configuration de NicololEnvoyer un message privé à Nicolol
 Revenir en haut de la page
 breizhbugs  Posté le 23/10/2007 à 12:29  
Astucien

3001 Messages
Nicolol a écrit :

Bonjour ms-dos

Je pense qu'il suffit de rajouter la ligne : system("pause"); juste avant l'accolade fermante du main

J'espere que ca repond a ta question


Une autre facon consiste à ouvrir la console via le menu demarer, se deplacer dans le bon repertoire et d'y taper le nom du programme pour l'executer. La console ouverte de cette facon ne se ferme pas a la fin du programme (alors que c'est le cas si double clic sur le programme via l'explorer ou via un EDI)

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 don diego  Posté le 23/10/2007 à 19:00  
Petit astucien

323 Messages

Salut,

je pense que Nicolol et breizhbugs ont répondu à ta question.

Mais je suis étonné par ces lignes :

  • int continuerPartie = 1, plus, moins;
  • plus = "C'est plus !!\n\n";
  • moins = "C'est moins !!\n\n";
  • Surtout que ensuite, tu les affiche en tant que chaine de caractères :


    printf("%s", plus); 

    Afficher le profil de don diegoEnvoyer un message privé à don diego
     Revenir en haut de la page
     ms-dos  Posté le 24/10/2007 à 03:30  
    Petit astucien

    55 Messages
    don diego a écrit :

    Salut,

    je pense que Nicolol et breizhbugs ont répondu à ta question.

    Mais je suis étonné par ces lignes :

  • int continuerPartie = 1, plus, moins;
  • plus = "C'est plus !!\n\n";
  • moins = "C'est moins !!\n\n";
  • Surtout que ensuite, tu les affiche en tant que chaine de caractères :


    printf("%s", plus); 
     

    Je suis débutant, alors où est le problème ai-je mal suivi mes cours  ???
    Pourtant il affiche ce que je veux qu'il affiche ! 




    Modifié par ms-dos le 24/10/2007 03:30
    Afficher le profil de ms-dosEnvoyer un message privé à ms-dos
     Revenir en haut de la page
     don diego  Posté le 24/10/2007 à 08:56  
    Petit astucien

    323 Messages

    J'aurais déclaré plus et moins en tant que chaines de caractères et non des entiers.

    char[14] plus;

    char[14] moins;

    plus = "C'est plus";

    moins = "C'est moins";

    Et enlève les '\ ' et met les plutôt dans le printf;

    printf("%s\n\n", plus);

    Afficher le profil de don diegoEnvoyer un message privé à don diego
     Revenir en haut de la page
    Haut de la page 
    Inscrivez-vous !
    - Posez vos questions

    - Résolvez vos problèmes

    - Aidez les autres

    - Participez et créez vos discussions

    - Dialoguez en privé avec d'autres membres

    - Suivez vos sujets préférés

    - Affichez les signatures des membres

    TOUT EST GRATUIT !

    Je crée mon compte



    Vous avez besoin d'aide ?
    Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

    Les derniers sujets résolus !
     

     > Tous les forumsAutres langages

     
    Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page