Forum Programmation.c affichage caractère.

Posté par  . Licence CC By‑SA.
Étiquettes :
0
23
sept.
2014

salut à tous.

#include <stdio.h>

int main(void){

    char t[]="éçà";

    printf("éçà\n");
    printf("%s\n", t);
    printf("%c\n", t[1]);

    return 0;
}

éçà
éçà

quelqu'un pourrait m'expliquer ?
je suis preneur d'un lien aussi.

merci.

  • # Encodage du code source

    Posté par  . Évalué à 4.

    Tout le problème réside dans la façon dont est stockée ta chaîne de caractères dans le fichier source, qui est ensuite compilé.
    Pour peu que ton "é" soit encodé sur 2 octets, t[1] sera insuffisant pour l'afficher correctement. Bien sûr, en supposant que ton affichage de terminal soit adapté à ce printf…

    • [^] # Re: Encodage du code source

      Posté par  . Évalué à 1. Dernière modification le 23 septembre 2014 à 11:42.

      tout est utf-8 sur mon système:
      -les locales
      -le terminal (option encodage)
      -mon éditeur vim:"set encoding & set fileencoding"

    • [^] # Re: Encodage du code source

      Posté par  . Évalué à 3.

      Tout à fait. Les caractères accentués du français pèsent 2 octets en UTF-8. On peut s'en convaincre en affichant la valeur de sizeof(t).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.