wchar_t, problème compatibilité Windows/Linux
Bonjour...
J'ai toujours des problèmes avec l'UNICODE :(
Voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
#define E_AIGU_MIN L'\x00E9'
int main(void){
wint_t c;
setlocale(LC_ALL,"");
c = getwchar();
if (c == E_AIGU_MIN)
c = L'e';
putwchar(c);
return 0;
} |
Ce que je voudrais, c'est que si je tape un 'é' , il m'affiche un 'e'. J'ai récupéré le code Unicode du 'é' depuis cette page http://www.unicode.org/fr/charts/PDF/U0080.pdf
Ce code fonctionne bien sous mon Linux (Ubuntu), mais PAS sous Windows, où cela m'affiche un deuxième 'é' après celui que j'ai tapé.
J'arrive pas bien à comprendre pourquoi... J'ai essayé d'enlever le setlocale, ça ne change rien. A croire que le 'é' n'a pas ce codage sous Windows.
Comment je pourrais remédier à ce problème?