printf 전에 char로 변환해야하는 unsigned char이 있습니다. 그래서 예제 코드는 다음과 같이 진행됩니다C/C++ casting 문제, unsigned char from char
unsigned char y = sample.result;
char x = (char)y;
printf("%c \n", x);
그러나, printf
이 x
를 인쇄하지 않습니다하지만 난 아무 생각이 왜 그렇게이 없습니다를 바르게, x
인쇄 cout을 사용하는 경우. 서명되지 않은 char 변수를 char로 변환하는 방법은 무엇입니까? 내가 잘못 했니? reinterpret_casting은 포인터만을위한 것이고 나의 것은 포인터가 아닙니다. 미리 감사드립니다.
EDIT : 명령 프롬프트에서 unsigned char 1에 해당하는 sample.result의 값에 웃는 얼굴 "☺"을 반환합니다. 분명히 netbeans는이 웃는 얼굴을 인쇄 할 수 없습니다. 나는 그것이 어떻게 웃는 얼굴로 번역되었는지 전혀 모른다. 어떤 도움이 필요합니까?
편집 2 : 문자 x = 1을 인쇄 할 수 없다는 것을 깨달았습니다. 명령 프롬프트에서 인쇄하면 웃는 얼굴이 생깁니다. 원인? :(
나를 위해 컴파일하고 작동하는 것. 당신은 무엇을 얻을 것으로 예상합니까? 그리고 당신은 무엇을 얻고 있습니까? – GreenMatt
캐스팅을 사용하거나 사용하지 않고 나와 함께 작동합니다. 'sample.result'에 127보다 큰 값이 있습니까? –
좋은 방법으로 못생긴 캐스트를 사용하고 싶다면, static_cast가 당신이 찾고있는 것이라고 믿습니다. 그것은 아마도 당신의 문제를 해결하지 못할 것입니다. (나는 Karl의 코멘트를 가지고 있다고 믿습니다.) 그러나 그 일에 가장 가까운 것입니다. –