1

C++ および Code::Blocks (128 より大きい文字コード) を使用して、コンソール アプリケーションで拡張 Ascii コードを使用しようとしています。http://www.asciitable.com/ コンソールには、ひし形の中に疑問符が表示されます。

私はこれまでに試しました:

char myChar = 200;
cout << myChar;

cout << static_cast<char>(200);
4

1 に答える 1

2

char は文字セット全体を保持できません

代わりにunsigned charを使用してください。

unsigned char myChar = 200;
cout << myChar << endl;

charは一般にsigned charです。-128 から 127 までの値を保持できます。ASCII は 0 から 127 にうまく適合するため、ASCII を扱う場合はcharが妥当です。

128 から 255 までの非 ASCII 文字については、もっと大きなものが必要です。 unsigned charは 0 から 255 までの値を格納できます。これは文字セット全体をカバーします。それはまさにあなたが必要とするものです。

他にも研究すべきことがあります。ユニコードについて読むことができます。ただし、unsigned charを使用すると、現在の問題を回避できます。

于 2012-02-07T23:06:03.510 に答える