ホームページ > バックエンド開発 > C++ > cout を使用すると、wchar_t 文字列が文字ではなく 16 進値として出力されるのはなぜですか?

cout を使用すると、wchar_t 文字列が文字ではなく 16 進値として出力されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-16 15:43:03
オリジナル
269 人が閲覧しました

Why are wchar_t strings printed as hex values instead of characters when using cout?

コンソールへの wchar_t 値の出力

コード内で、標準出力ストリーム (コウト)。ただし、これにより、実際の文字の代わりに 16 進値が出力されます。 wchar_t 文字列を正しく出力するには、代わりにワイド文字出力ストリーム (wcout) を使用する必要があります。

指定した例を考えてみましょう。

#include <iostream>

using namespace std;

int main() {
    wchar_t en[] = L"Hello";
    wchar_t ru[] = L"Привет"; // Russian language
    cout << ru << endl << en; // Prints hex values
    return 0;
}
ログイン後にコピー

wchar_t 文字列を正しく出力するには、cout を置き換えます。 wcout:

...
    wcout << ru << endl << en; // Prints actual characters
...
ログイン後にコピー

この変更により、プログラムはロシア語の文字を出力します。予想通り「Привет」と「こんにちは」。デフォルトのロケールでは、wchar_t 文字列内のすべての文字がサポートされていない可能性があるため、一部の文字が正しく表示されない可能性があることに注意してください。

以上がcout を使用すると、wchar_t 文字列が文字ではなく 16 進値として出力されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート