> Tous les forums > Forum Autres langages
 Programme en C (exe)
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
ms-dos
  Posté le 23/10/2007 @ 02:06 
Aller en bas de la page 
Petit astucien

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. }

Publicité
Anonyme
 Posté le 23/10/2007 à 12:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

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

breizhbugs
 Posté le 23/10/2007 à 12:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
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)

don diego
 Posté le 23/10/2007 à 19:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

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); 

    ms-dos
     Posté le 24/10/2007 à 03:30 
    Aller en bas de la page Revenir au message précédent Revenir en haut de la page
    Petit astucien
    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
    don diego
     Posté le 24/10/2007 à 08:56 
    Aller en bas de la page Revenir au message précédent Revenir en haut de la page
    Petit astucien

    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);

    Page : [1] 
    Page 1 sur 1

    Vous devez être connecté pour participer à la discussion.
    Cliquez ici pour vous identifier.

    Vous n'avez pas de compte ? Créez-en un gratuitement !
    Recevoir PC Astuces par e-mail


    La Lettre quotidienne +226 000 inscrits
    Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

    Les bonnes affaires
    Une fois par semaine, un récap des meilleurs offres.

    Les fonds d'écran
    De jolies photos pour personnaliser votre bureau. Une fois par semaine.

    Les nouveaux Bons Plans
    Des notifications pour ne pas rater les bons plans publiés sur le site.

    Les bons plans du moment PC Astuces

    Tous les Bons Plans
    18,93 €Micro clé USB 3.1 Sandisk Ultra Fit 128 Go à 18,93 €
    Valable jusqu'au 27 Janvier

    Amazon fait une promotion sur la micro clé USB Sandisk Ultra Fit d'une capacité de 128 Go qui passe à 18,93 €. La minuscule taille de cette clé USB va vous permettre de la laisser brancher en permanence sur votre portable, votre TV ou votre autoradio sans qu'elle dépasse de manière disgracieuse. Sa compatibilité USB 3.1 lui permet d'atteindre des débits jusqu'à 130 Mo/s. 


    > Voir l'offre
    20,90 €Adaptateur WiFi PCI Express TP-Link Archer T4E AC1200 à 20,90 €
    Valable jusqu'au 28 Janvier

    Amazon fait une promotion sur Adaptateur WiFi PCI Express TP-Link Archer T4E AC1200 double bande qui passe à 20,90 € alors qu'on le trouve ailleurs à partir de 36 €. La livraison en relais est gratuite pour cet adaptateur à brancher sur un port PCI-E de votre ordinateur et qui vous offrira un débit sans fil atteignant 1200 Mbps (867 Mbps sur la bande 5 GHz et 300 Mbps sur la bande 2,4 GHz).  Deux antennes externes assurent une meilleure couverture WiFi et une stabilité améliorée.


    > Voir l'offre
    139,99 €Disque dur externe USB 3.0 Seagate 8 To à 139,99 €
    Valable jusqu'au 27 Janvier

    Fnac propose actuellement le disque dur Seagate Expansion Desktop Drive 8 To à 139,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 180 €. Le disque est non soudé et vous pourrez le récupérer pour l'utiliser dans un ordinateur, un NAS, etc. Connexion USB 3.0.


    > Voir l'offre

    Sujets relatifs
    Programme spatial
    Programme crash
    Aide pour un programme simple en C++
    Script pour lancer un programme en VBS
    Imprimante HP C3180 et programme MS/ DOS
    C++ Coder un programme: Le plus grand/petit nombre
    Code source programme
    Créer programme ou application pour tablette PC
    Aide à la réalisation d'un programme
    Programme de Pointage en Python
    Programme .INI de démarrage automatique d’un DVD
    Plus de sujets relatifs à Programme en C (exe)
     > Tous les forums > Forum Autres langages