ARRIVE pas à EXECUTER avec DEV-C++

bonjours ,
voila , je suis un grand débutant en programmation , et je n'arrive pas à exécuter des programmes simples sur Dev-c++.

Pourtant , je ne dois pas faire de grosse erreur puisque j'arrive à compiler , c'est juste l'éxecution qui cloche .

Par exemple , ce matin , j'ai essayé ceci (c'est l'exemple d'un livre)

#include<stdio.h>
main( )
{
printf ("Bonjours.\n");
return 0;
}

Pourriez vous me dire qu'est ce qui cloche ?

Merci d'avance

18 réponses

  1. Salut !
    Bon ce sujet est vieux mais comme il a été "rajeuni"... ;D
    Pour le premier post de Marsu :
    Son code était :
    #include<stdio.h>
    main( )
    {
           printf ("Bonjours.\n");
           return 0;
    } 

    Il disait qu'il n'avait pas de problème de compilation.
    Cependant quelques trucs devraient être modifiés :
    Il fait un return 0; à la fin donc sa fonction doit être du type int. Ce qui donne :
     int main ()

    Comme elle ne prend aucune variable en paramètre, il faut l'indiquer avec void. Ce qui donne
    int main (void)


    Si on teste ce code avec L'IDE DevC++, il ne se passe rien.
    Cela est du au fait que le programme s'ouvre et se ferme à la vitesse de l'éclair.
    Ce problème n'existe pas avec l'IDE Code::Blocks, qui est en quelque sorte plus intelligent, et qui fait une pause tout seul avant de se fermer.

    Pour éviter cela avec DevC++ il existe
    system("PAUSE");
    qui permet de faire une pause dans le programme avant qu'il se ferme. Dans ce cas tant que l'utilisateur ne tape pas sur une touche du clavier, le programme ne continue pas.
    Le seul soucis c'est que cela n'est pas portable.
    Pour y remédier il est conseillé de le remplacer par
    getchar();

    Cela à exactement le même effet, sauf qu'il faut uniquement appuyer sur ENTRER pour continuer, et qu'il est utilisable par tous les OS !

    Donc voilà le code de Marsu, modifié :
    #include<stdio.h>
    int main( void )
    {
           printf ("Bonjour.\n");
           getchar();
           return 0;
    } 


    Ce que je viens d'expliquer, je l'ai appris ici :
    https://openclassrooms.com/forum/sujet/foire-aux-questions-langage-c-98714#r1138696
    3
    1. merci frangin tu viens de me sauver la

      0
  2. Contributeur
    remplace return 0 par exit (0);
    1
    1. Contributeur
      Bonjour,

      Ton projet doit être de type" win32 console" ou un truc du genre. Sinon le printf ne passera pas.
      1
      1. avec getch( ) , ça marche ... Thank you tout le monde !!!
        Mais j'ai vu quelque part qu'on pouvait mettre aussi system("pause") , mais ca ne passe pas au compilateur .
        Comment utiliser cette fonction ? Où faut il la placer ???
        0
    2. Salut !
      Je te conseille de créer ton propre topic.
      Un problème, un topic, ça me parait normal.
      D'autant que là tu ne parles pas de DevC++.

      A bientôt sur ton nouveau topic !
      1
      1. si tu compile c'est qu'il n'y a pas d'erreur dans le code mais dans le projet que tu as créé

        merci, @+
        pierre L.
        0
        1. slt, ton code est bon.
          Si tu n'as pas d'erreur de compilation, cela vient peut-être du "flashage" du terminal. Rajoute getch() à la fin çà peut venir de çà.

          voilà, voilà, ...
          0
          1. Avec le code de Marsu, on met comme ça :

            #include<stdio.h>
            main( )
            {
            printf ("Bonjours.\n");
            return 0;
            getch();
            }

            ou comme ça :

            #include<stdio.h>
            main( )
            {
            printf ("Bonjours.\n");
            return 0;
            }
            getch();

            Parce que moi, ça marche avec aucun des deux :(
            0
            1. #include <stdio.h>
              main()
              {
              printf("Tiens, on débute en C?");
              getch();
              return 0;
              }

              return veut dire que tu quitte le programme en retournant la valeur 0 (= tt se passe bien, cool). Le getch() après return ne sera pas pris en compte
              0
              1. Ca me met comme erreur : implicit declaration of function ìnt getch(...)'
                0
                1. j'ai 1 souci avec dev c++ lorsque j'execute 1 programme je n'arrive pas à avoir le resultat du programme je ne sais pas a quoi c'est du j'ai 1 rapport a rendre pour demain
                  0
                  1. bonjour,

                    #include <stdio.h>

                    int main ()
                    {
                    int a, b, c, nb1, nb2, nb3; //nombres entiers à saisir
                    int res; //resultat du tri

                    /* Saisie du premier nombre */
                    printf("nb1");
                    scanf("%d", &a);
                    /* Saisie du deuxieme nombre */
                    printf("nb2");
                    scancf("%d", &b);
                    /* Saisie du troisieme nombre */
                    printf("nb3");
                    scanf("%d", &c);

                    res=c; //choix arbitraire à corriger ensuite si nécessaire

                    if (a<b)
                    { //b n'est pas le minimum
                    if (a<c) res=a; // c n'est pas le minimum
                    }
                    else // le minimum est a ou c
                    {
                    if (b<c) res=b; //c n'est pas le minimum
                    }
                    printf("le plus petit est: %d", res);

                    getch();
                    }

                    voila quand je compile ce programme avec dev c++ il m indique
                    linker error indefined reference to 'scanf'
                    id return 1 exit status
                    quelqu'un aurais t'il une réponse merci
                    0
                    1. Contributeur
                      Vu que c'est du C++ utilise plutôt cin et cout plutôt que scanf et printf. il faut inclure la librairie iostream : #include <iostream>.
                      0
                      1. #include<stdio.h>
                        main ()
                        {
                        int i,j,x,y;
                        printf ( "entrez un nombre svp: " );
                        scanf ( "%i", &x );
                        printf( "entrez un nombre svp: " );
                        scanf( "%j", &y );
                        i=1;
                        while ( i<=x );
                        {
                        j=1;
                        while ( j<=y );
                        {
                        printf ("x");
                        j=j+1;
                        }
                        printf("\n");
                        i=i+1;
                        }
                        getchar();
                        }
                        et ca pk ca ne fonctionne pas ca devrait pourtt maffiche:
                        xxx
                        xxx
                        xxx
                        xxx
                        xxx
                        pour x =5 et y=3
                        or ca me demande bien les valeurs mais on dirait ke les whiles ne fonctionnes pas
                        merci pour les rep
                        0
                        1. salut
                          le probleme n'est dans votre programme ni dan votre IDE
                          il faut savoire tout simplement que devc++ est un ancien IDE et il considere la fonction main comme une fonction qui returne un entier(tu dois obligatoirement donner le type de main)

                          int main()
                          et ca va marchè
                          desolè pour mon niveau en francais
                          0
                          1. Salut, pareil je peux compiler mais ça ne s'execute pas... j'ai un message d'erreur qui sort sous windows, et ça dit "name.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru." je sais pas comment faire et je suis pas douée en prog
                            0
                            1. Salut !

                              Essais donc avec CodeBlocks ;)
                              0
                            2. salutation , ^ ^
                              dit nous juste kel é ton programme et en kel langage tu veu le codé ?
                              0
                          2. Vous devez ajouté
                            #include <conio.h> pour ke ca fonctione
                            0
                            1. #include <stdio.h>
                              #include <conio.h>
                              main (void){
                              int choix;
                              clrscr ();
                              printf (" *******************************************\n");
                              printf (" * programme fais spécialement pr Med.amine*\n");
                              printf (" *******************************************\n");
                              printf("\n");
                              printf("\n");
                              printf("\n");
                              printf("##############################################################################\n");
                              printf("# salu ts le monde j'aimerai porté a votre savoir que ce programme est fais #\n# spécialement pour une personne qui s'appel AMINE et que j'aime tant #\n");
                              printf("##############################################################################\n");
                              printf("\n");
                              printf("\n");
                              printf("puije savoir quel est votre nom SVP :\n");
                              printf("\n");
                              printf("taper 1 Si cé mohamed amine\n");
                              printf("Si AUTRE taper 2 \n");
                              printf("\n");
                              printf("Veuillez entrez le numéro du choix qui vous convient \n");
                              scanf("%d",&choix);
                              if (choix == 1){
                              printf("\n");
                              printf(" ******* *** *** * * *** * * **** ****\n");
                              printf(" * ***** ***** * * * * * * * * * *\n");
                              printf(" * ********* * * * * * * * * * *\n");
                              printf(" * ******* * * * * * ***** *****\n");
                              printf(" * ***** * * * * * * * * *\n");
                              printf(" * *** * * * * * * * * *\n");
                              printf(" ******* * * *** ** **** ****\n");
                              printf("\n");
                              printf("******* ******* ******* ****** * * ***** * * ******* ******\n");
                              printf(" * * * * * * * * * * * * * *\n");
                              printf(" * * * * * * * * * * * * * *\n");
                              printf(" * * * ****** * * * ******* * * * ******\n");
                              printf(" * * * * * * * * * * * *\n");
                              printf(" * * * * * * * * * * * *\n");
                              printf(" * * * ****** * * * * * ******* ******\n");
                              printf(" ");
                              }
                              if(choix == 2 ){
                              printf(" ****\n");
                              printf(" * **\n");
                              printf(" * **\n");
                              printf(" * **\n");
                              printf(" * **\n");
                              printf(" * * ****\n");
                              printf(" **** *** * * **\n");
                              printf(" * * ** * * * ****\n");
                              printf(" * * ** * *** ** ***\n");
                              printf(" * ********** * * ***** **\n");
                              printf(" * * ** * ** **** **\n");
                              printf(" * *** *** **\n");
                              printf(" * **\n");
                              printf(" * **\n");
                              printf(" * **\n");
                              }
                              getch ();
                              }
                              0