C++ char 출력
조회수 1133회
변수에 담긴 값을 char*
로 접근해서 바이트 하나씩 읽어서 little endian을 표현할려고 합니다.
예를 들면
int dwValue = 33;
char* pBuf = &dwValue;
for(int i = 0; i < 4 ; i++){
cout << hex << pBuf[i];
}
예상 출력 결과 21000000
실제 결과 : ? ~~
char
이라서 그런지 출력하니깐 아스키코드 기준으로 나와버리네요. 어떻게 해야할까요 ?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
아래의 예제를 보고 학습을 해보세요.
참고로 아스키코드상 십진수 33은 ! 입니다.
[cling]$ int dwValue = 33; [cling]$ char* pBuf = &dwValue; input_line_4:2:8: error: cannot initialize a variable of type 'char *' with an rvalue of type 'int *' char* pBuf = &dwValue; ^ ~~~~~~~~ [cling]$ temp = (char*)&dwValue (char *) "!" [cling]$ temp[0] (char) '!' [cling]$ temp[1] (char) '0x00' [cling]$ temp[2] (char) '0x00' [cling]$ temp[3] (char) '0x00'
- cout로 출력시 !말구 숫자가 나왔으면 좋겠는데 어찌해야할까요..? 알 수 없는 사용자 2018.12.5 17:27
- itoa함수(http://www.cplusplus.com/reference/cstdlib/itoa/ )를 사용하면 됩니다. 링크를 보세요 정영훈 2018.12.5 17:47
댓글 입력