IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

code ascii en C


Sujet :

C

  1. #1
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut code ascii en C
    Bonjour, je suis sur un projet de labyrinthe en langage C sur console. Je dois représenter les murs par le code ascii 219: █
    malheureusement, dès que je tape ça sur devcpp il m'affiche une autre forme (rien à voir)
    Quelqu'un pourrait me dire comment je dois faire?
    Pourquoi ça affiche ça et pas le code ascii d'origine?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Bonjour,

    Citation Envoyé par malhek69 Voir le message
    Pourquoi ça affiche ça et pas le code ascii d'origine? Merci d'avance
    Justement parce que ce n'est pas de l'ASCII. Le jeu de caractères ASCII original tient sur 7 bits et s'étend en principe de 0 à 127. Et même dans cette plage, on trouve malgré tout des variations selon les machines.

    Étant donné qu'on stocke pour ainsi dire toujours un caractère dans un octet, les valeurs courant de 128 à 255 sont indéfinies par définition et le fabricant les utilise comme bon lui semble. À l'époque des huit bits, on pouvait les redéfinir « graphiquement ». Sur PC, IBM avait choisi d'y ajouter un certain nombre de caractères « utilitaires » comme des pavés, des bordures et certains caractères accentués.

    La page de code par défaut est donc la 437. Les cartes vidéos en mode texte sont initialisés avec ces glyphes par défaut. Néanmoins, toutes les machines vendues à l'étranger sont configurées par défaut avec une page de code adaptée, dans laquelle les caractères génériques sont souvent remplacés par des caractères plus utiles à la langue concernée, comme par exemple des caractères accentuées, même rares. En France et dans d'autres pays d'Europe occidentale, on utilisait la page 850.

    Le fait que la page de code par défaut soit « 437 » et que les autres se situent après « 800 » est probablement dû au fait qu'il doit s'agir du numéro de page réel des du cahier des spécifications de l'IBM PC où le jeu de caractères est défini : le jeu de caractère par défaut doit se trouver au cœur des spécifications, et l'ensemble des jeux de caractères alternatifs a dû être ajouté a posteriori et en annexe, à la fin de l'ouvrage, donc.

    Aujourd'hui, ces jeux de caractères, censés être propres au PC, sont obsolètes. On a eu Windows-1250 et 1252, pendant un temps … sous Windows !

    Les systèmes qui se veulent portables ont utilisé iso-8859 (-1 ou -15, chez nous) pendant très longtemps et, aujourd'hui, tout le monde converge vers UTF-8.

    Essaie :


    … dans ta console avant de lancer ton programme. Il y a bien longtemps que je ne travaille plus sous Windows. Je ne sais pas si ça marche encore.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Citation Envoyé par malhek69 Voir le message
    malheureusement, dès que je tape ça sur devcpp il m'affiche une autre forme (rien à voir)
    J'en profite aussi pour dire qu'il ne faut plus utiliser Dev-cpp et qu'il existe maintenant Code::Blocks qui fait la même chose en mieux.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Je n'ai jamais compris pourquoi les utilisateurs de Code::Blocks présentent toujours cet EDI comme le successeur de Dev-C++ alors que ce sont deux projets qui n'ont rien à voir. Il y a pourtant wxDevC++ (dernière mise à jour : octobre 2011) et Orwell Dev-C++ (dernière mise à jour : 18 novembre 2011) qui sont de très bons EDIs et qui sont, eux, de vrais successeurs de DevC++.

    Mais bon, cela n'enlève pas le fait qu'il faut abandonner Bloodshed Dev-C++ .

    Je dois représenter les murs par le code ascii 219
    219 n'est pas un code ASCII. Les caractères ASCII vont uniquement de 0 à 127, ASCII étant un code n'utilisant que 7 bits. Cependant, les jeux de caractères les plus populaires de nos jours sont dérivés d'ASCII. Le soucis, sous Windows, c'est que l'environnement graphique et la console n'utilisent pas le même jeu de caractères. Des solutions sont proposées ici.

  5. #5
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    LittleWhite, c'est notre tuteur qui nous a demandé d'installer devcpp mais je vais suivre tes infos et installlés codeblocks. !
    Où dois je taper le > chcp 437 (désolée, seulement première année en informatique)
    Merci beaucoup en tout pour toutes ces explications

    sur code blocks ça m'affiche le caractère que je veux:
    else printf("█ ");
    mais sur la console, il me marque une succession de ÔÛÊ

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Je t'avais pourtant déjà donné la solution dans mon précédent message. Je n'ai pas l'impression que tu l'aies lu. Utilise la fonction CharToOem comme il est indiqué dans le lien que je t'ai indiqué. Pour contourner le problème d'affichage d'affichage de Dev-C++, dont je n'ai pas cherché à en connaître la raison, tu peux utiliser le code '\xDB' (219 en décimal) pour représenter le caractère █. En plus, cela est plus universel comme solution.

  7. #7
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    ah voilà avec le code \xDB ça fonctionne. si si j'avais lu mais je ne savais pas comment utiliser la fonction que vous m'aviez envoyé.
    Merci beaucoup pour l'aide
    cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  2. [Hardware portable] Comment entrer un code Ascii?
    Par l.sage dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 11/08/2005, 13h04
  3. fonction redonnant le code ascii d'un entier ???
    Par abignon dans le forum MFC
    Réponses: 4
    Dernier message: 29/01/2004, 12h32
  4. [mx2004]Convertir un code ASCII en une lettre
    Par caramel dans le forum Flash
    Réponses: 3
    Dernier message: 28/01/2004, 16h26
  5. [TP]Code ASCII.
    Par franck H dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 18/01/2004, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo