l'impression d'un caractère unicode avec printf

Je suis en train d'imprimer un Ș en passant par sa valeur décimale correspondante dans le printf. La sortie n'est rien du tout. Pourquoi ne pas mon code de travail?

#include <stdio.h>
int main()
{
    printf("%lc",536);
    return 0;
}
Je ne peux pas dire si c'est une dup ou pas, mais vous devrez peut-être définir les paramètres régionaux sur Linux.
aussi, essayez un fflush(NULL) après le printf. peut ou ne peut pas changer quoi que ce soit, mais au moins vous serez sûr que c'est d'être printf ed.
Vérifier la valeur de retour. int cnt = printf("%lc", ( wint_t ) 536); printf("%d\n", cnt); Était-il 1 ou une valeur négative (par erreur)? Un message d'erreur indique printf() ne peut pas gérer de caractère.
Cela dépend de votre OS, du compilateur et de l'environnement. L'appel de setlocale("", LC_ALL) au début de votre programme est une sorte de mamdatory si vous voulez tout type de support de l'Unicode à partir de la bibliothèque C de. Il peut ou peut ne pas être suffisant.
Je suppose que le support de l'Unicode à partir de la bibliothèque C est un peu exagéré. Dans certains cas, vous vous en sortez simplement émettant UTF-8 sans se soucier de quoi que ce soit et laisser le terminal tri, mais habituellement, la meilleure façon est d'être conscient de l'OS et tout ce qui est entre votre programme et de l'écran et de les traiter en conséquence d'en parler à l'OS à la place de C.

OriginalL'auteur Mike | 2017-01-22