ホームページ >バックエンド開発 >C++ >「cout」が符号なし Char 値を正しく出力しないのはなぜですか?

「cout」が符号なし Char 値を正しく出力しないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-27 18:07:13194ブラウズ

Why Doesn't `cout` Print Unsigned Char Values Correctly?

cout が符号なし文字を正しく印刷しないのはなぜですか?

コード スニペット内:

#include<iostream>
#include<stdio.h>

using namespace std;

main() {
    unsigned char a;
    a=1;
    printf("%d", a);
    cout<<a;
}

cout は印刷していますゴミのように見える値。しかし、これは実際にはゴミではありません。印刷できない ASCII 文字が印刷されています。 1 に対応する ASCII 文字は印刷できないことに注意してください。

std::isprint:

std::cout << std::isprint(a) << std::endl;

を使用してこれを確認できます。これにより、文字が印刷されていないことを示す 0 (false) が出力されます。

cout に 1 を強制的に出力するには、 a を unsigned にキャストします。整数:

cout << static_cast<unsigned>(a) << std::endl;

以上が「cout」が符号なし Char 値を正しく出力しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。