Partage
  • Partager sur Facebook
  • Partager sur Twitter

Interpreteur de commande ?

Pas compirs la FAQ...

Sujet résolu
    17 mai 2007 à 11:28:26

    Bonjour à tous ! :p

    Voila, je lis la FAQ, je trouve un truc intérressant : Accentué sous console

    Oui mais voila : Je comprend rienà ce qui faut faire.. o_O

    Où faut-il mettre chcp 1252 ?

    Merci ;)
    • Partager sur Facebook
    • Partager sur Twitter
      17 mai 2007 à 11:36:37

      Ca doit donner un truc comme ça :
      #ifdef __WIN__
      system("chcp 1252");
      #endif

      C'est donc moche. Mais bon, en utilisant windows, faut forcément s'attendre à ce genre de choses.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        17 mai 2007 à 11:37:44

        Je ne tourne pa sous windows mais je pense a :
        system("chcp 1252");


        Edit : Grilled
        • Partager sur Facebook
        • Partager sur Twitter
          17 mai 2007 à 11:47:27

          Les accents sont là, mais les lettres pas :

          ex : pour "é", il me met l'accent aigu, mais sur un "u" !

          Remarque :

          avec :
          system("chcp 1252");


          il me met en haut de la console :
          Page de codes activea: 1252

          Il vous savez quoi ? : ya un accent aigu, mais pas sur le "e", sur le "a" o_O
          • Partager sur Facebook
          • Partager sur Twitter
            17 mai 2007 à 12:40:08

            Bah sinon tu utilises les codes des lettres ;)

            printf("%c", 130); // affiche 'é'
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              17 mai 2007 à 12:53:03

              Utile pour le printf, mais pour les chaines de caracteres ? Comment on fait avec ta technique ?
              • Partager sur Facebook
              • Partager sur Twitter
                17 mai 2007 à 13:03:07

                tu met le caractere qui correspond à 130 dans ta table

                tu veux faire un 'é' avec le CP850 alors que t'es sous windows avec l'encodage CP1252 ... tu tape ',' ca correspond au 'é' avec le CP850

                voilà qui pourrait bien t'aider :)
                http://www.miakinen.net/vrac/charsets/
                • Partager sur Facebook
                • Partager sur Twitter
                  17 mai 2007 à 15:04:16

                  moi, perso, ça me dérange pas de taper "," pour faire un "é". ;)

                  Oui, mais : si je veux accentuer, c'est pour mon projet de "Bloc-Note" :p


                  L'utilisateur ne doit donc pas taper "," pour un "é"... :o
                  C'est pour ça :

                  Citation : FAQ

                  Il n'est alors nul besoin de modifier vos programmes (ni même de les recompiler), les accents et autres caractères spéciaux s'afficheront sans problèmes.



                  ça paraissait pas mal...
                  Il n'y a pas une méthode, pour qe quand l'utilisateur du programme tape "é", le programme comprenne bien "é" (et pas ","...) ? o_O

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 mai 2007 à 15:15:24

                    Citation : remram44

                    Mais bon, en utilisant windows, faut forcément s'attendre à ce genre de choses.


                    On a pas besoin de trolleurs, merci... Personne ne t'oblige à utiliser Windows, ni à répondre à une question sur Windows.

                    Et c'est (en admettant que ça marche, ce qui me surprendrait)

                    #ifdef WIN32
                       system ("chcp 1252");
                    #endif

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Music only !
                      17 mai 2007 à 15:22:43

                      Citation : Pas de titre

                      Mais bon, en utilisant windows, faut forcément s'attendre à ce genre de choses.




                      de plus il existe un shell sous windows trés puissant(powershell) , je suis linuxien convaincus mais la j'avoue ca m'a impressionné.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 mai 2007 à 15:25:39

                        Salut,

                        Cette commande est à exécuter dans l'interpréteur de commandes de Windows, avant de lancer vos programmes.

                        La faire exécuter par votre programme (à coup de system("chcp 1252")) est AMHA une très mauvaise idée. Cela revient à imposer l'encodage que doit utiliser la console, alors que c'est à l'utilisateur de choisir cela.

                        Si vous tenez malgré tout à le faire, au moins faites-le correctement :
                        #include <windows.h> /* pour les fonctions GetConsoleOutputCP et associées */

                        /* Au début du programme, on récupère l'encodage
                         * utilisé par la console. */

                        UINT default_codepage = GetConsoleOutputCP();

                        /* Puis, on change cet encodage pour imposer celui
                         * que l'on veut (ici, page de code 1252). */

                        SetConsoleOutputCP(1252);

                        /* Le corps du programme. */

                        /* A la fin du programme, on restore l'encodage initial. */
                        SetConsoleOutputCP(default_codepage);
                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 mai 2007 à 15:40:08

                          Citation : gouttegd

                          Si vous tenez malgré tout à le faire, au moins faites-le correctement



                          Ben, moi, ya un truc que je dois vraiment pas faire correctement o_O :

                          #include <stdio.h>
                          #include <stdlib.h>
                          #include <windows.h>

                          int main(int argc, char *argv[])
                          {
                            UINT default_codepage = GetConsoleOutputCP();
                            SetConsoleOutputCP(1252);
                            SetConsoleOutputCP(default_codepage);
                           
                            printf("test : é    \n");
                           
                           
                           
                            system("PAUSE");     
                            return 0;
                          }


                          Il n'y a toujours pas de "é" dans ma console :(
                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 mai 2007 à 16:01:03

                            C'est normal, tu n'as rien compris au code...
                            Tu ne remets le codage initial qu'à la fin de ton programme, si tu le fais avant d'afficher ça n'a aucun sens...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 mai 2007 à 16:08:14

                              Oui, euh là c'est un peu de ma faute :euh: À force d'utiliser PowerShell, j'avais oublié qu'il y avait une manip supplémentaire à faire avec la console Windows "standard".

                              Il faut changer la police utilisée par la console : clic-droit sur la barre de titre de la console, "Propriétés", onglet "Police", choisir "Lucida Console" plutôt que "Polices Raster". Et faire en sorte que les modifications s'appliquent "à toutes les fenêtres portant le même titre", afin que le réglage soit persistant.

                              Edit : Et c'est vrai, comme le dit Elrond, que ça ne craignait pas de marcher comme tu l'as fait... Mais il faut tout de même changer la police de la console, je mets à jour la FAQ immédiatement.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 mai 2007 à 16:26:12

                                Merci à vous tous, ça marche nikel !

                                c'est top merci encore ! :p;):D:):lol:

                                effectivement, j'avais mal lu les commentaires...
                                C'est mieux comme ça :
                                #include <stdio.h>
                                #include <stdlib.h>
                                #include <windows.h>

                                int main(int argc, char *argv[])
                                {
                                  UINT default_codepage = GetConsoleOutputCP();
                                 
                                  SetConsoleOutputCP(1252);
                                 
                                 
                                  printf("test : é ê ë à    \n");
                                   
                                  SetConsoleOutputCP(default_codepage);
                                 
                                  system("PAUSE");     
                                  return 0;
                                }
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  17 mai 2007 à 21:40:52

                                  Citation : gouttegd


                                  #include <windows.h> /* pour les fonctions GetConsoleOutputCP et associées */

                                  /* Au début du programme, on récupère l'encodage
                                   * utilisé par la console. */

                                  UINT default_codepage = GetConsoleOutputCP();

                                  /* Puis, on change cet encodage pour imposer celui
                                   * que l'on veut (ici, page de code 1252). */

                                  SetConsoleOutputCP(1252);

                                  /* Le corps du programme. */

                                  /* A la fin du programme, on restore l'encodage initial. */
                                  SetConsoleOutputCP(default_codepage);

                                  Voilà qui me parait beaucoup plus raisonnable...

                                  FAQ ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Music only !
                                    17 mai 2007 à 21:43:22

                                    Si tu recherche le sens de de FAQ c'est Foire Aux Questions ;)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      17 mai 2007 à 21:51:38

                                      Faudrait mettre ce code dans la FAQ, je pense pas qu'on soit les seuls sous Windows à vouloir mettre des accents en console.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        17 mai 2007 à 21:52:25

                                        Nan -ed- connait le sens de FAQ.
                                        (Sinon a 50 ans,je m'inquieterai)
                                        Je pense qu'il proposait d'integrer ce bout de code dans la FAQ.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 mai 2007 à 23:34:01

                                          Je n'avais pas mis ce code dans la FAQ, parce que je n'aime pas trop le principe sous-jacent qui consiste à imposer l'encodage que doit utiliser la console. Selon moi, c'est l'utilisateur du système qui doit choisir l'encodage et paramétrer la console en conséquence (via la commande chcp).

                                          Mais après réflexion, ce n'est pas à moi d'en décider à la place des Zér0s, donc je vais ajouter ce code à la FAQ, comme ça chacun pourra décider s'il est judicieux d'y recourir ou non. :)
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Interpreteur de commande ?

                                          × 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