Si vous pouviez répondre à mes questions, ce serait génial.
Voici le scoop: j’enseigne une introduction à la classe de programmation en Thaïlande pour les 11e année. Cela va très bien jusqu’à présent, leur niveau d’anglais est suffisamment élevé pour que je puisse enseigner en anglais et leur demander d’écrire des programmes en anglais, et tout va bien et tout à fait dandy.
Cependant, en tant que locuteurs d’une langue avec des caractères non latins, j’estime qu’ils devraient au moins apprendre ce qu’est UNICODE. Je ne vais pas les tester ni les expliquer avec des détails d’implémentation, mais je veux leur montrer un exemple de programme UNICODE pouvant faire des E / S avec des caractères thaïlandais.
Je suis soumis aux contraintes suivantes, dont aucune ne peut être modifiée (du moins pour ce semestre):
Voici à quel point je suis, et les questions que j’ai:
J’aimerais terminer ce cours avec un programme qui génère outputs, l’équivalent thaïlandais de “Hello World!” J’ai fait des tonnes de recherches sur Google, mais chaque réponse que j’ai trouvée ne fonctionnait pas dans ce cas particulier ou impliquait un IDE différent.
Ok, voici mon aide. Je n’utilise pas Dev-C ++ comme IDE, je ne peux donc pas vous aider avec des choses spécifiques à l’IDE, mais ce qui suit est standard pour la plupart des compilateurs C / C ++:
wprintf
est l’implémentation printf
pour les caractères larges (unicode).
Lorsque vous utilisez des caractères larges, vous utiliserez wchar_t
à la place de char
pour définir des chaînes.
alors tu pourrais faire quelque chose comme ça
#include int main(int argc, char** argv) { wchar_t* str = L"สวัสดีโลก"; wprintf(L"%s", str); system("pause"); return 0; }
wprintf
est probablement ce que vous recherchez.
Vous pouvez trouver d’autres fonctions pour imprimer et manipuler des chaînes larges en wchar.h
fichier d’en-tête wchar.h
.
Reference: wprintf – Référence C ++
L’utilisation de L avant les citations signifie que vous avez l’intention de définir une chaîne large. (unicode)
J’espère que cela pourra aider,
-Dave
Je n’ai jamais utilisé IDE DEV-C ++ 🙂 Cependant, après avoir lu un peu dessus, je vois que la version 4.9.9.3 de dev-c ++ utilise le portage gcc-3.5.4. Qui a le statut de support de caractère universel de “Terminé”, voir http://gcc.gnu.org/gcc-3.4/c99status.html pour plus de détails. Vous devez modifier la configuration de l’EDI de sorte que le compilateur utilise -std = c99 dans le cadre des indicateurs du compilateur.
Espérons que cela fera l’affaire.
Je vais essayer de le modifier sur mon propre système et de voir jusqu’où nous pouvons aller. Mettra à jour la réponse si je trouve d’autres indices 🙂
Si vous devez modifier la page de code dans un programme C de la console, vous pouvez append l’en-tête
et le system("CHCP 874");
ligne system("CHCP 874");
au début du programme.
Si vous avez besoin d’un compilateur gratuit conforme à C99 sous Windows, vous pouvez essayer Pelles C :
http://www.christian-heffner.de/index.php?page=download&lang=en
Il est conforme à tous avec C99.
Vous devez utiliser des constantes de chaîne large, qui ont la syntaxe suivante:
L"Wide ssortingng\n"
Au lieu de printf (), vous devez utiliser wprintf (), etc.
http://pubs.opengroup.org/onlinepubs/7908799/xsh/wchar.h.html