Partage
  • Partager sur Facebook
  • Partager sur Twitter

Codage ASCII

    24 août 2015 à 12:44:53

    Bonjour, je dois réaliser un programme qui va demander à l'utilisateur une lettre et qui va lui donner son code en ASCII, mais je ne suis qu'en première année de programmation et j'aurais besoin d'aide, voici ce que j’ai déjà fait. N'hesitez pas à me signaler mes erreur ou me donner des conseils.

    import javax.swing.*;

    public class app3{

        public static void main(String[] args){

            String a = JOptionPane.showInputDialog(null,"quelle lettre faut-il convertir ?");

            String b = Integer.parseInt (a);

            int ia = (int)b;

            System.out.println("code ascii de "+ia+" = "+(char)ia+"");

        }

    }

    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2015 à 13:38:14

      On est sur le forum C++, je craint que les réponses apportées ici ne soit pas satisfaisantes pour un programme Java.

      Les codes ASCII ne sont ni plus ni moins que la représentation numérique des caractères. Leur affichage peut être extrêmement simple (du moins en C++).
      Exemple ci dessous: affichage des codes ASCII d'une chaine sous forme hexadécimale

      #include <string>
      
      int main()
      {
          using std::cout;
          using std::hex;
          using std::endl;
          
          string str = "Une chaine";
          for(int i=0; i<str.length(); ++i)
              cout << hex << str[i] << endl;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        24 août 2015 à 13:55:29

        Merci pour la réponse mais le problème est que je ne connais pas toutes ces notion  de #include, std:: ,... Je ne suis qu'en première année et je suis plutôt mauvais en plus donc j'aurais besoin de quelque chose de plutôt basic, mais merci quand même ^^
        • Partager sur Facebook
        • Partager sur Twitter
          24 août 2015 à 14:51:32

          Salut,

          @Deedolith : ton code ne fonctionnera pas :p

          Même si hex est utilisé, ce seront des caractères qui seront affichés. Il faut effectuer un cast. (Je ne mentionnerais pas non plus des #include et std:: manquants :p)

          #include <iomanip>
          #include <iostream>
          #include <string>
          
          int main() {
              std::string str = "Une chaine";
              std::cout << std::uppercase << std::hex; // code hexadécimal avec majuscules (commenter cette ligne pour de l'ASCII)
              for(auto ch : str) // range-for C++11
                  std::cout << static_cast<int>(ch) << ' ';
              std::cout << std::endl;
          
              return 0;
          }

          Sinon @guillaumedebruyeres, regarde la doc de la méthode Integer.parseInt() : elle renvoie un int et non un String.

          -
          Edité par Squall31 24 août 2015 à 14:51:55

          • Partager sur Facebook
          • Partager sur Twitter
            24 août 2015 à 15:15:54

            Salut,

            C'est très simple, il suffit de récupérer le caractère qui t'intéresse et de le transtyper en int :

            import javax.swing.*;
            
            public class app3
            {
                public static void main(String[] args)
                {
                    String a = JOptionPane.showInputDialog(null, "quelle lettre faut-il convertir ?");
            
                    char character = a.charAt(0)
                    int ascii = character;
            
                    System.out.println("code ascii de " + character + " = " + ascii);
            
                }
            }

            -
            Edité par RPGamer 24 août 2015 à 15:21:50

            • Partager sur Facebook
            • Partager sur Twitter
            Don't be serious but do it seriously.
              24 août 2015 à 15:23:12

              En effet, je n'était pas sûre de mon coup pour le transtypage, merci.

              Quand aux std:: manquants, c'est pour cela que j'ai utilisé les instructions using (il manque quand même un using std::string; ou déclarer ma variable avec std::string str = "Une chaine"; ou std::string str("Une chaine"); ou std::string str{"Une chaine"};)

              • Partager sur Facebook
              • Partager sur Twitter
                24 août 2015 à 16:40:18

                Hello,

                je t'ai fait ça en speed si ça peux t'aider :)

                    public static void main(String[] args) {
                        //On initialise tout le matos a input 
                        Scanner sc = new Scanner(System.in);
                        System.out.print("Input à convertir :  ");
                        String str = sc.nextLine();
                        //on converti le string récolté en char
                        char c = str.charAt(0);
                        //on affiche le char. Ca marche sans le cast, mais je l'ai mis pour comprendre
                        System.out.println("Résultat ascii : " + (int) c);
                
                    }


                EDIT: Ce n'est pas optimisé et pas sécurisé mais tu comprends l'idée je pense.

                -
                Edité par arno21 24 août 2015 à 16:42:25

                • Partager sur Facebook
                • Partager sur Twitter

                Mon projet: SpotRoom. N'hésites pas à passer dire ce que tu en penses !

                Codage ASCII

                × 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