Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un petit programe qui beugue !!

    25 novembre 2005 à 18:58:20

    bonjour j'ai essayé de faire un petit programe de c++ mais il beugue (le programe consiste a coder des message (c'est juste un petit programe d'essai))
    #include <iostream>


    int main(int argc, char *argv[])

    {
          cout <<"Saisissez une lettre";
         scanf("%c", &l);
         l=toupper(l);
         {
      char l;
      if ("$1 == a") {
      cout << "2156468456461";
              }

    }
     getch();       
      return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 novembre 2005 à 19:04:11

      Ouhhhh tu ferais mieux d'attendre la suite des cours.

      Si tu fais du C++ pas de scanf mais utilises cin>> puis ta variable l est pas initialisée faut l'initialiser avant le scanf ou cin>> donc tu mets le char l: avant, et enfin ta condition c'est un peu n'importe quoi, faut mettre if(l == 'a') par exemple (le $ existe pas en C/C++ et la condition ça sert à rien de la mettre entre "").

      Quand au toupper ça m'étonnerait qu'il soit dans iostream, il doit falloir inclure stdlib ou stdio (avec ou sans le .h ??? je laisse la place à quelqu'un qui le sait).

      ;)
      • Partager sur Facebook
      • Partager sur Twitter
        25 novembre 2005 à 19:04:46

        Tu peux pas attendre de lire le cours de m@teo ?

        Ici on est sensé aider pour le cours du site, et pas servir de hotline a quiconque code comme un orang-goutang atteint de gastro-entérite.
        • Partager sur Facebook
        • Partager sur Twitter
          25 novembre 2005 à 19:08:02

          salut

          déja c'est un petit peu normal que ton programme ne fonctionne pas :)

          si tu ne déclare pas ta variable il te le détecte en erreur de compilation.

          et puis, quand tu regarde ta condition a aussi un problème... ;)

          personnellement je n'ai jamais vu de condition entre guillemet lol :D

          tu dois supprimer tes guillemets et enléver le "$" avant le "l".

          apparament tu devais programmer en basic avant nan ?

          ha oui aussi, je te conseille d'utiliser "cin" pour les entrées au lieu du "scanf".;)

          sur ceux :D
          ++
          • Partager sur Facebook
          • Partager sur Twitter
            25 novembre 2005 à 19:50:18

            Ouai lol c'est vrai que c'est du archi n'importe quoi la^^ mais bon normal qu'il est hate de pouvoir faire ces tits programmes, j'allais répondre a ton post, en corrigeant ton source, mais heu je me suis laissé aller et je suis arrivé a 100lignes :s alors j'ai pas osé poster dsl ^^
            • Partager sur Facebook
            • Partager sur Twitter
              25 novembre 2005 à 20:15:45

              Bon j'ai changer le code maintenant (sa marche tj pas) j'ai mis

              #include <iostream>


              int main(int argc, char *argv[])
              {
                char l;
               if(l == 'a') {
                cout << "2156468456461";
              }

              {
                    cout <<"Saisissez une lettre";
                   cin>>("%c", &l);
                   l=toupper(l);
                   

              }
               getch();       
                return 0;
              }
              • Partager sur Facebook
              • Partager sur Twitter
                25 novembre 2005 à 20:18:16

                Tu pourrais indenter correctement s'il te plait ?
                C'est illisible là, on dirait que tu fermes la fonction main à la fin du 'if' etc...

                http://fr.wikipedia.org/wiki/Indentation#Informatique
                <lien>http://fr.wikipedia.org/wiki/Style_d'indentation</lien>
                • Partager sur Facebook
                • Partager sur Twitter
                  25 novembre 2005 à 20:29:50

                  Ba je vois pas bien ce que tu vex dire tu peux me donner un code stp
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    25 novembre 2005 à 20:34:51

                    Tu pourrais aussi prendre l'habitude ne nous dire plus exactement ce qui ne marche pas :D ?

                    Faut que tu mettes les cout, cin et toupper avant le if sinon il teste une variable initialisée mais sans valeur. Et comme en effet ton code est mal indenté, je te le remets il devrait marcher :
                    #include <iostream>

                    int main(int argc, char *argv[])
                    {
                        char l;

                        cout << "Saisissez une lettre";
                        cin >> l;

                        if(l == 'a')
                        {
                            cout << "2156468456461";
                        }

                        getch();
                         
                        return 0;
                    }

                    Au passage : après un cin>> on met directement la variable, enlèves le toupper, après un petite recherche il est dans ctype.h et si tu convertis ta variable en majuscule elle pourra jamais être égale à un a minuscule, et ensuite dans ton code il y avait un } en trop.

                    Et attends vraiment la suite des cours...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 novembre 2005 à 21:10:23

                      Sa marche toujours pas sa marque :

                      15 untitled1.cpp
                      implicit declaration of function `int getch(...)'
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 novembre 2005 à 21:25:47

                        #include <iostream>
                        #include <cstdlib>
                        using namespace std;
                        int main(int argc, char *argv[])
                        {
                            char l;

                            cout << "Saisissez une lettre";
                            cin >> l;

                            if(l == 'a')
                            {
                                cout << "2156468456461";
                            }

                            system("PAUSE");
                             
                            return 0;
                        }


                        Voila tu a oublie la 3eme ligne, TRES TRES importante
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 novembre 2005 à 21:55:14

                          C'est beau l'esprit d'initiative :'(
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 novembre 2005 à 22:18:14

                            Bon ben je tener déja a vous remercier j'ai réussi mais maintenant je cherche a créer une boucle (pouvoir taper plusieur fois a la place que sa ce ferme a chaque fois)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 novembre 2005 à 22:55:35

                              Je pense qu'au lieu d'essayer de faire des programmes à tatons comme tu fais, tu devrais soit attendre la suite des cours de Matéo, ou alors te trouver un cours de C (ou C++ parce que là tu fais plus du C++ que du C en fait...) pour pouvoir faire quelque chose qui marche dès le premier coup et pas faire n'importe quoi.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 novembre 2005 à 23:02:58

                                Moui ta raison mais quand je cherche sous google je trouve rien au fait peut tu me dire comment se transphorme le:
                                if ($1,2 == null)
                                et le :
                                if (1,2 != null) merci d'avance
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  25 novembre 2005 à 23:44:44

                                  Bon déja faut savoir qu'en C, pour désigner une variable on ne préfixe pas le nom de la variable par un "$" contrairement au PHP. On donne tout simplement le nom de variable tel que.
                                  Donc si j'ai :

                                  int i = 15; // On déclare et on initialise ici la variable, pour indiquer "hop je veux une case mémoire de taille int" (et de type entier -> int -> integer) pour stocker le nombre 15.

                                  i = 13; // Ici pour indiquer la variable i on utilise simplement son nom.


                                  Bon sinon pour répondre à ton : if (1,2 != null), ça siginifie quoi en fait ? C'est peut être un opérateur PHP mais sachant que je fais pas de PHP... Ah et aussi, à priori 1 et 2 sont des noms de variables, or en C (comme dans pas mal d'autres langages) on ne désigne surtout pas les variables par des nombres.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    26 novembre 2005 à 0:13:39

                                    sa veut dire si la deuxiéme letre du num est diférente de nulle

                                    autrement voici mon programe (j'ai avancé)

                                    #include <iostream>
                                    #include <cstdlib>
                                    using namespace std;
                                    int main(int argc, char *argv[])
                                    {
                                    char l;

                                    cout << "Saisissez une lettre ";
                                    cin >> l;

                                    if(l == 'a')
                                    {
                                    cout << "2156468456461\n";
                                    cout << "encore\n";
                                    }




                                    {
                                    char x;
                                    cout << "tu veux recomencer ? (o/n) ";
                                    cin >> x;
                                    }
                                    if (x == 'o')
                                    {
                                    cout << "Saisissez une lettre ";
                                    cin >> x;
                                    }

                                    if(x == 'a')
                                    {
                                    cout << "2156468456461\n";

                                    }

                                    system("PAUSE");

                                    return 0;
                                    }

                                    qu'est-ce qui ne vas pas ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      26 novembre 2005 à 0:27:33

                                      Citation : Nico63

                                      qu'est-ce qui ne vas pas ?

                                      Plusieurs choses, dont le fait que c'est mal indenté et pas entre zcode C++.
                                      #include <iostream>
                                      #include <cstdlib>

                                      using namespace std;

                                      int main(int argc, char *argv[])
                                      {
                                          char l;

                                          cout << "Saisissez une lettre ";
                                          cin >> l;

                                          if(l == 'a')
                                          {
                                              cout << "2156468456461\n";
                                              cout << "encore\n";
                                          }

                                          /* ici il y avait des {} qui ne servaient à rien */
                                          char x;
                                          cout << "tu veux recomencer ? (o/n) ";
                                          cin >> x;
                                         
                                          if (x == 'o')
                                          {
                                              cout << "Saisissez une lettre ";
                                              cin >> x;

                                              /* plus logique d'imbriquer ainsi le if sinon il aurait pas forcément été lu */
                                              if(x == 'a')
                                              {
                                                  cout << "2156468456461\n";
                                              }
                                          }

                                      system("PAUSE");

                                      return 0;
                                      }
                                      ;)

                                      Moi je vais me coucher, j'ai mal à la tête, j'ai bien programmé pour ajourd'hui (pointeurs pointeurs...). Amis zéros, à demain ^^
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        26 novembre 2005 à 0:30:42

                                        où apprenez vous tout ça à au fait bravo au créateur de ce programme meme si y bug parce que c'est déjà pas évident j'arrive juste à zfficher du texte moi :p

                                        By Kitsune :ninja:
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 novembre 2005 à 0:42:32

                                          Et là qu'est-ce qui ne va pas

                                          #include <iostream>
                                          #include <cstdlib>

                                          using namespace std;

                                          int main(int argc, char *argv[])
                                          {
                                              char l;

                                              cout << "Saisissez une lettre ";
                                              cin >> l;

                                              if(l = 'a')
                                              {
                                                  cout << "21\n";

                                              }

                                              if(l = 'b')
                                              {
                                                  cout << "846\n";

                                              }

                                              /* ici il y avait des {} qui ne servaient à rien */
                                              char x;
                                              cout << "tu veux recomencer ? (o/n) ";
                                              cin >> x;
                                             
                                              if (x == 'o')
                                              {
                                                  cout << "Saisissez une lettre ";
                                                  cin >> x;

                                                  /* plus logique d'imbriquer ainsi le if sinon il aurait pas forcément été lu */
                                                  if(x == 'a')
                                                  {
                                                      cout << "21\n";
                                                  }
                                              }

                                          system("PAUSE");

                                          return 0;
                                          }
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 novembre 2005 à 0:45:28

                                            Ce serait pas plutôt

                                            int main(int argc, char **argv[])

                                            ??
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              26 novembre 2005 à 0:49:47

                                              Citation : Natim

                                              Ce serait pas plutôt


                                              int main(int argc, char **argv[])


                                              ??



                                              Cela va permettre de récuperer le nombres d'arguments, et les arguments passés au programme par la ligne de commande.

                                              Genre si tu entres en ligne de commande : monprog -h, tu vas pouvoir récuperer l'argument -h et ensuite l'utiliser dans ton programmes.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 novembre 2005 à 0:49:54

                                                Non, c'est soit :
                                                int main(int argc, char *argv[])
                                                {
                                                return 0;
                                                }

                                                soit :
                                                int main(int arc, char **argv)
                                                {
                                                return 0;
                                                }
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  26 novembre 2005 à 0:52:02

                                                  Non l'ereur c'est que je n'est pas la deuxiéme sulution (recommencer sa marche pas) sa ma dit:
                                                  taper une letre je tape par ex: a
                                                  sa m'afiche les deux nb (21 ET 846 (ce qui n'est pas normale si je tape QUE a) et puis voila
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    26 novembre 2005 à 11:23:54

                                                    Normal, en C/C++ pour les conditions dans if on écrit == n'oublies jamais = pour l'afectation d'une valeur à une variable, == pour les comparer ;)
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      26 novembre 2005 à 11:29:21

                                                      #include <iostream>

                                                      using namespace std;

                                                      int main(int argc, char *argv[])
                                                      {
                                                          char l;

                                                          cout << "Saisissez une lettre ";
                                                          cin >> l;

                                                          if(l == 'a')
                                                          {
                                                              cout << "21\n";
                                                          }

                                                          if(l = 'b')
                                                          {
                                                              cout << "846\n";
                                                          }

                                                          char x;
                                                          cout << "tu veux recomencer ? (o/n) ";
                                                          cin >> x;
                                                         
                                                          if (x == 'o')
                                                          {
                                                              cout << "Saisissez une lettre ";
                                                              cin >> x;

                                                              // plus logique d'imbriquer ainsi le if sinon il aurait pas forcément été lu
                                                              if(x == 'a')
                                                              {
                                                                  cout << "21\n";
                                                              }
                                                          }

                                                          system("PAUSE"); // ah ! c'est quoi cette horreur !!! AAAHHHHH !!!

                                                          return 0;
                                                      }


                                                      Sinon, tu peux pas attendre la suite du cours de m@teo21, c'est plus fort que toi, tu veux aller plus vite que tout le monde, c'est ça ?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        26 novembre 2005 à 13:02:30

                                                        Image utilisateur Pourquoi tous le monde pense que les cours de M@téo sont les seuls cours du web, c'est pas parce qu'on est fidèle au SdZ qu'il ne faut lire que les cours de M@téo. M@téo a pas du attendre d'apprendre avec ses cours pour les écrire, et tous ceux qui connaissent le C++ non plus. Je trouve les cours de M@téo plutot mieu que les autres que j'ai lu sur le web, c'est pas pour autant qu'on ne peut comprendre qu'avec ceux du SdZ. Si les gens prenent de l'avance avec d'autres tutoriaux sur internet, quand ils liront les prochains chapitres ils comprendront beaucoup plus facilement ! :D
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          26 novembre 2005 à 13:08:55

                                                          Moi j'adore le c++ alor j'essaye
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            26 novembre 2005 à 15:10:00

                                                            #include <iostream>

                                                            using namespace std;

                                                            int main()
                                                            {
                                                                char l;
                                                                do
                                                                {
                                                                    cout << "Saisissez une lettre "<<endl;
                                                                    cin >> l;
                                                                    if(l == 'a')
                                                                        cout << "21\n";
                                                                    else if(l == 'b')
                                                                      cout << "846\n";
                                                               
                                                                cout << "tu veux recomencer ? (o/n) "<<endl;
                                                                cin >> l;
                                                                }
                                                                while(l=='o');
                                                                system("PAUSE");
                                                            }


                                                            Voila ce code marche et est plus simpa.
                                                            Il y a pas des { } apres le if, vu que il y a que 1 instruction seulment.

                                                            Tu trouve aussi une premiere boucle, do{}while;
                                                            Qui a difference du while, verifie a la fin
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              26 novembre 2005 à 15:19:01

                                                              Citation

                                                              Moi j'adore le c++ alor j'essaye



                                                              Et puis étant donné que tu te fais faire tout le boulot, c'est pas trop fatiguant, non ?
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Un petit programe qui beugue !!

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown