Dev C++、Windows 7 を使用しています。
次を使用して非ASCII文字を印刷しようとしています:
char a='\uwxyz';
例えば:
#include <locale.h>
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"en_US.UTF-8");
char a='\u0041'; //Should display 'A'
cout<<a<<endl;
a='\u2639'; //Should display '☹'
cout<<a<<endl;
system("PAUSE");
}
この例では、大文字の A が正しく表示されています。wxDev を使用すると、☹ 文字に対して何も表示されません。Dev (最終プログラムに使用する必要があります) を使用すると、拡張された ascii 文字が得られます (これは ∥ に似た記号でしたが、そのように見える記号が複数あり、どれかわかりませんでした)。
Dev と wxDev の両方で、☹ は ? として表示されます。
Unicode 文字を正しく表示する方法を最初に検索した後、setlocale を追加しましたが、この問題の解決策はまだ見つかりません。
別のコンパイラを使用したり、システム設定を変更してこれを機能させることはできません。(はい、これは学校のプロジェクトです。いいえ、プロジェクトに特殊文字は必要ありません。見栄えを良くしたいだけです。)このような設定を変更しないと機能しない場合は、それも役立つ情報です。
よろしくお願いします。
編集:wxDevではなく、Devを使用して、
char a='\u0041'; //should be A
cout<<a;
エラーが表示されます: \u0041 は有効なユニバーサル文字ではありません
データ型として wchar_t を使用する場合:
wchar_t a = '\u2639';
cout<<a<<endl;
出力は 39097 です。