je n'arrive pas à me servir des caractères accentués,
j'ai lu dans toutes les doc misent à dispositions sur ARCH
pouvez-vous m'aider svp
j'ai essayé
#include </usr/include/cursesw.h>
#include </usr/include/curses.h>
etc...
avant de venir vous demandez ...
j'ai bien contrôlé comme demandé la locale
je spécifie que je travaille avec xterm mais j'ai essayé aussi avec xfce4-terminal et c'est le même problème.
mon locale.conf
Code : Tout sélectionner
LANG=fr_FR.UTF-8
LC_MESSAGES=fr_FR.UTF-8
LC_COLLATE=C
]
Code : Tout sélectionner
C
fr_FR.utf8
POSIX
locale
Code : Tout sélectionner
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE=C
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES=fr_FR.UTF-8
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
mon code
Code : Tout sélectionner
#include <stdio.h>
#include </usr/include/cursesw.h>
/// -D_XOPEN_SOURCE_EXTENDED ça c'est le protocole demandé NCURSES Programming HOWTO
#include <stdlib.h>
#include <ctype.h>
#include <locale.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"");
// setlocale(LC_ALL,"fr_FR.UTF-8");
WINDOW * mainwin;
int ch;
/// test pour é ne fonctionne pas code clavier 169 et pour tous les caractères spéciaux
/// sans setlocale é --> ?
/// quelque soi le setlocale cela ne fonctionne pas é --> M-)
if ( (mainwin = initscr()) == NULL ) {
fprintf(stderr, "Error initialisation ncurses.\n");
exit(EXIT_FAILURE);
}
cbreak();
noecho(); /* Turn off key echoing */
keypad(mainwin, TRUE); /* Enable the keypad for non-char keys */
mvaddstr(3, 10, "Press a key ('F1' to quit)...");
mvprintw(4, 10, "TEST: ");
refresh();
while((ch = wgetch(mainwin)))
{
switch(ch)
{
case KEY_F(1):
printw("Press KEY_CLOSE to exit");
exit(0);
break;
default:
/// fprintf (pFile,"getch %c\n",ch); //
/// pour détailler ce qui sort sur la console xterm
mvprintw(5, 30," num test %3d",ch); // 169 pour 'é'
mvwprintw(mainvin,5, 40," num test %3d",ch); // 169 pour 'é'
mvprintw(6, 30," val test %s"," ");
mvprintw(6, 30," val test %c",ch); // soi M-) soi ?
move(10,30); printw(" --- test %s"," ");
move(10,30); printw(" --- test %4x",ch);
refresh();
break;
}
}
return EXIT_SUCCESS;
}
Code : Tout sélectionner
g++ -Wall -fexceptions -D_XOPEN_SOURCE_EXTENDED -g -c /home/userx/Programation/key/main.cpp -o obj/Debug/main.o
g++ -o bin/Debug/testkey obj/Debug/main.o -lncursesw
merci :pappy: