これをコンソールに出力したい^
のですが、値自体ではなくASCIIコードを使用して出力したいと思います。誰かがこれを行う方法のアイデアを持っていますか?
3 に答える
その記号はカレットと呼ばれます。ASCIIコードは0x5e
16進数です(= 10進数で94)。
Cバージョン:
printf("%c", 0x5e);
C ++バージョン:
std::cout << static_cast<char>(0x5e);
これらは両方とも、デフォルトの文字エンコーディングがカレットシンボルに値を割り当てるシステムで実行していることを前提としています0x5e
。
この仮定に依存する必要をなくすには、ASCIIコードを使用せず、代わりにを使用することをお勧めします'^'
。
キャレット文字 ( ^
)の 16 進数値は、ほとんどの場合 0x5e ( 10 進数で94 ) です。
std::cout << static_cast<char> (0x5e) << " " << (char)94 << " " << '\x5e';
私のプレイフォームの出力:"^ ^ ^"
標準では、特定の文字を表すために使用される整数値が保証されていないため、 「最も頻繁に」と書いています。したがって、暗示していることを行うべきではありません。
おそらくあなたが望むようにうまくいくでしょうが(ほとんどの最新のオペレーティングシステムはその値を使用してキャレットを表すため)、推奨されません..標準にない場合、すべてのプラットフォームで動作することを保証することはできません、すべての場合。
基準は何と言っていますか?
2.3/3 文字セット [lex.charset]
実行文字セットと実行ワイド文字セットは、それぞれ基本実行文字セットと基本実行ワイド文字セットの実装定義のスーパーセットです。実行文字セットのメンバーの値と追加メンバーのセットは、ロケール固有です。
このページによると:http ://www.ascii-code.com/
ASCIIコード0x5eです。