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 중국어 웹사이트의 기타 관련 기사를 참조하세요!