為什麼 cout 無法正確列印 unsigned char?
在提供的程式碼中:
#include <iostream> #include <stdio.h> using namespace std; int main() { unsigned char a = 1; printf("%d", a); cout << a; }
輸出包含使用 cout 列印時顯示為垃圾的值。出現這種情況是因為與 (1) 值對應的 ASCII 字元是不可列印的。要驗證這一點,請使用 std::isprint,如下所示:
std::cout << std::isprint(a) << std::endl;
結果將為 0(假),表示該字元無法列印。
要解決此問題,請執行以下操作:讓 cout print "1",將 a 轉換為無符號整數:
cout << static_cast<unsigned>(a) << std::endl;
以上是為什麼 `cout` 不能正確列印 `unsigned char` 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!