Mengapa cout Not Printing unsigned char Betul?
Dalam kod yang disediakan:
#include <iostream> #include <stdio.h> using namespace std; int main() { unsigned char a = 1; printf("%d", a); cout << a; }
Output termasuk nilai yang kelihatan sebagai sampah apabila dicetak menggunakan cout. Ini berlaku kerana aksara ASCII yang sepadan dengan nilai a (1) tidak boleh dicetak. Untuk mengesahkan ini, gunakan std::isprint seperti berikut:
std::cout << std::isprint(a) << std::endl;
Hasilnya akan menjadi 0 (palsu), menunjukkan bahawa aksara itu tidak boleh dicetak.
Untuk menyelesaikan isu ini dan mempunyai cout cetak "1", hantar a ke integer tidak bertanda:
cout << static_cast<unsigned>(a) << std::endl;
Atas ialah kandungan terperinci Mengapakah `cout` Tidak Mencetak Nilai `unsigned char` Dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!