

이 문제는 char 자료형에 대해 이해하기에 매우 좋은 문제인 것 같다.
입력 받은 문자의 아스키코드를 출력하는 문제이다.
어떻게 해야할까?
2가지 방법이 존재한다.
문자를 char 자료형 으로 입력을 받는다. (그러면 A를 입력받을때 'A'가 char 변수에 저장되고, char 변수는 'A'를
내부적으로 상응하는 아스키코드로 바꾸어 정수 형태로 저장한다)
이후 char를 int로 형변환해서 출력해준다. (굳이 형변환을 해주는 이유는, cout << char 변수 하면 아스키코드가 아니라 아스키코드에 상응하는 문자의 형태로 출력이되기 때문이다)
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
char c;
int a;
cin >> c;
a = (int) c;
cout << a;
return 0;
}
처음부터 string 으로 입력받고, string에 index 0으로 접근 (한 자리의 문자니까) 하는 것이다.
그러면 char& (참조타입 char 자료형) 를 반환하게되고, 이를 int로 형 변환하면 아스키코드를 출력할 수 있게된다.
#include <iostream>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string s;
cin >> s;
cout << (int)s[0];
return 0;
}
<참고>
이때 중요한것은 char 자료형은 정수 자료형이므로 인덱스 접근으로 반환된 데이터는 char 타입이고 + 정수 이다.
그러나 이를 그대로 cout으로 출력해버리면 char 타입이니까 아스키코드에 상응하는 문자로 변환되어 출력되고,
이를 막기위해 우리는 char를 int로 형변환 해주는 것이다.