Dans un petit programme que j'utilise pour tester une liste chaînée simple de personnes, j'ai une option qui me permet d'afficher le contenu de ma liste.
Mon problème est le suivant: quand je mets des accents dans un nom, la chaîne grandit d'un espace par accent !!
Je m'explique : voici un exemple d'affichage:
Code :
- 1: Bernard AAAAAA 5
- 2: Henry BBBBBBBB 12
- 3: Bérénice CCCCC 9
- 4: Louis DDDDDDD 25
|
Bérénice a deux accents, et le mot se voit affublé de deux expaces à la fin lors de l'affichage.
Voici le code qui gère cet affichage:
Code :
- OuvrirListe(L);
- r=1;printw("\n" );
- while(!FinListe(L))
- {
- pers=(pPersonne) ElementCourant(L);
- printw("\n %2d : %21s %21s %4d", r, pers->Prenom, pers->Nom, pers->age);
- // bizarre, chaque accent d'un mot ajoute un espace en fin de mot ???
- r++;
- }
|
Le printw est du à la bibliothèque ncurses que j'utilise sous Linux, et qui a la même fonction que printf, mais cela ne m'avait jamais posé ce problème...
J'ai vérifié l'encoding de la console et de mon éditeur, tous les deux sont en unicode...
Alors, d'où peut provenir ce problème de décalage à l'affichage, manifestement lié à la présence d'accents ???
Qui peut m'aider ?