Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le programme Fonctionne mais m'affiche une "erreur"

Sujet résolu
    3 avril 2008 à 11:25:17

    Yo !

    Voilà, je fais un petit prog qui utilise les params du main.
    Je compile niquel.
    Mais dans ma console voilà ce qui apparait à la fin de l'execution de mon prog :

    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.


    voici mon code (tout bête) :

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. string recupChaine(int argc, char *argv[]);
    5. int main(int argc, char *argv[])
    6. {
    7.     recupChaine( argc, argv );
    8.         return 0;
    9. }
    10. string recupChaine(int argc, char *argv[])
    11. {
    12.     string cowsay = "";
    13.     if( argc == 1 )
    14.     {
    15.         cout << "Cowsay : ";
    16.         getline(cin, cowsay);
    17.         cout << cowsay;
    18.     }
    19.     else
    20.     {
    21.         for( int i=1; i<argc; i++)
    22.         {
    23.             if( i!=1){cowsay += " ";}
    24.             cowsay += argv[i] ;
    25.         }
    26.         cout << cowsay;
    27.     }
    28.     return 0 ;
    29. }


    Une personne aurait elle une diée sur la qeustion ?
    Merci d'avance.

    Cordialement,
    Noodle Juice.
    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2008 à 11:44:08

      et si tu fais un simple "Hello World", as tu le meme soucis ?
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        3 avril 2008 à 11:56:36

        Non, avec un simple Hello World j'ai plus le message.
        Cela viendrait donc de la fonction (je me doutais que c'était cela)

        Cela vient peut être du faity que je passe les paramètres de la fonction main à une fonction ?

        J'ai voulu remédier à cette question mais j'ai pas réussi à mettre tout le contenu de argv[] dans une autre variable du même type ...
        • Partager sur Facebook
        • Partager sur Twitter
          3 avril 2008 à 11:58:31

          Ce message est l'équivalent du seg fault sous Linux.
          • Partager sur Facebook
          • Partager sur Twitter
          Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
            3 avril 2008 à 12:00:24

            Tu peux
            - afficher chaque argv au fur et à mesure, tester leur nullité
            - encadrer ton main d'un try { ...code ... }catch(std::exception const&}{cerr << e.what<<endl;}
            - débugguer
            • Partager sur Facebook
            • Partager sur Twitter
            C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
              3 avril 2008 à 12:09:37

              Alors maintenant :

              - "Ce message est l'équivalent du seg fault sous Linux."
              Qu'est ce qu'un seg fault

              - "afficher chaque argv au fur et à mesure, tester leur nullité"
              Cela m'avancerai à quoi ?

              - "encadrer ton main d'un try { ...code ... }catch(std::exception const&}{cerr << e.what<<endl;}"
              Là j'ai rien compris...

              - "débugguer"
              Je n'ia techniquement aucune erreur (à la compilation)
              • Partager sur Facebook
              • Partager sur Twitter
                3 avril 2008 à 12:14:51

                b- savoir quand ça plante
                c- tu rajoutes "try{" avant ton code dans ton main, et ce qui suite après.
                d- raison de plus.
                • Partager sur Facebook
                • Partager sur Twitter
                C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
                  3 avril 2008 à 12:24:59

                  Je mets ton code il me met des erreurs de partout -_-*
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 avril 2008 à 13:33:33

                    Oups.
                    1. int main( .....)
                    2. {
                    3.    try {
                    4.       code ....
                    5.       return 0;
                    6.    } catch(std::exception const& e) {
                    7.       std::cerr << "Erreur détectée: " << e.what() << std::endl;
                    8.       return 1;
                    9.    }
                    10. }
                    • Partager sur Facebook
                    • Partager sur Twitter
                    C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
                      3 avril 2008 à 14:07:24

                      string recupChaine(int argc, char *argv[])
                      [...]
                      return 0 ;
                      [...]

                      l'erreur saute aux yeux
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 avril 2008 à 14:09:25

                        Oo

                        Oh My God ....

                        Je suis vraiment désolée d'avoir dérangé pour si peu, je croyais avoir mit mon "return cowsay" et en fait non ...


                        J'suis encore désolée ^^
                        Merci Spaz.



                        EDIt : Par contre si je met pas mon curseur en fin de programme j'ai cette erreur lors de la compilation qui apparait

                        main.cpp:36:2: warning: no newline at end of file


                        Cela signifie quoi ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 avril 2008 à 14:12:00

                          bien vu ^^'
                          (je sentais bien que NULL était balancé à une string -- ce qu'aurait intercepté le catch)
                          • Partager sur Facebook
                          • Partager sur Twitter
                          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
                            3 avril 2008 à 14:19:37

                            Par contre si je met pas mon curseur en fin de programme j'ai cette erreur lors de la compilation qui apparait

                            main.cpp:36:2: warning: no newline at end of file

                            Cela signifie quoi ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 avril 2008 à 14:21:37

                              Saute une ligne à la fin de ton source.
                              • Partager sur Facebook
                              • Partager sur Twitter
                              C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
                                3 avril 2008 à 14:27:07

                                Oki merci bien, voilà j'ai plus de problème avec cette partie ;)

                                Merci de votre aide.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Le programme Fonctionne mais m'affiche une "erreur"

                                × 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