2

そこで、C++ と Windows Forms を使用して、日本語の学習に役立つアプリケーションを作成しようとしています (今のところ、ひらがなとカタカナのみ)。目的は、ユーザーが使用したい文字セット (A から O、KA から KO など) を選択し、カードを自由に表示するか、プログラムに文字でテストさせるプログラムを作成できるようにすることです。 . デバッグの目的で、現在、5 つの値を 5 つの異なるテキスト ボックスに出力するように [表示] ボタンを設定しています。ローマ字の発音、対応する文字、すべての文字が格納されている配列内の位置、およびブール値です。

私の問題は、文字がすべて「?」として表示され、コンパイル時に複数の警告が表示されることです。この警告の例:

1>c:\users\cameron\documents\visual studio 2010\projects\japanesecards\japanesecards\Form1.h(218): 警告 C4566: ユニバーサル文字名 '\u3093' で表される文字は、現在のコードでは表現できませんページ (1252)

これは、配列内の日本語の文字ごとに 1 つずつ、合計 46 回表示されます。配列の宣言行は、

std::string hiraList[5][11][2];

ローマ字とひらがなのペアを挿入する例は、

hiraCheck[0][0][0] = "A";
hiraCheck[0][0][1] = "あ";

最後に、次のコードを使用してひらがなをテキスト ボックスに挿入します。

System::String^ displayText = gcnew String(hiraList[x][y][1].c_str());
textBox5 -> Text = displayText;

基本的に、これらすべてを考慮して、私の質問は、どうすればフォームにテキスト ボックスに日本語の文字を正しく表示させることができますか?

4

1 に答える 1

0

わかった!wchar_t を少し調整して実験し、解決策を見つけました。

まず、hiraList 配列を 2 次元配列に縮小し、ひらがな文字を次のように定義された独自の配列に移動しました。

wchar_t hiraChar[5][11];

そして、次のような値を追加しました:

hiraChar[0][0] = L'あ';

次に、「表示」ボタンのコードに行き、いくつかの変更を加えました。

displayText 変数の宣言と入力のメソッドを削除しました

hiraChar[x][y] から読み取るテキスト値を textBox5 に割り当てるコード行を更新しました。

新しいコードの行が以下に貼り付けられています。

textBox5 -> Text = hiraChar[x][y].ToString();

基本的に、プログラムはひらがな用に 3 つの変数を作成します。1 つはチェック ボックスを監視するため、もう 1 つはローマ字の値を格納するため、もう 1 つはひらがな文字を格納するためです。少なくとも 1 つのチェック ボックスが選択され、[表示] ボタンが押されると、文字、配列内でのその位置 (x と y は別のボックス)、対応するローマ字、および 'True' 値の 5 つがテキスト ボックスに出力されます。これは、開発の初期段階でデバッグ目的で使用されていました。

于 2014-09-18T15:41:31.383 に答える