인프런 커뮤니티 질문&답변

하가현님의 프로필 이미지
하가현

작성한 질문수

홍정모의 따라하며 배우는 C++

2.7 문자형 char type

안녕하세요 저번 질문 아직 해결 못했어요 ㅠㅠ

작성

·

195

0

안녕하세요 이전 질문글에서 교수님이 주신 힌트대로 며칠간 고민해보았지만 아직도 답이 안나와서 너무 답답해서 다시 질문 글을 올리게 되었습니다. 다른 힌트 하나만 더 주실 수 있을까요? 뭔가 알것 같으면서도 이상하게 나오니 답답해요.

이전 질문은 아래와 같습니다.

저번 강의인 불리언과 if 에서 배운 조건문을 섞어서 내주신 숙제를 살짝 변경해서 해보려고 했습니다.

입력값을 받고 int형인 경우 ascii 의 알파벳으로, 알파벳을 입력 받는 경우 int형으로 출력되게 해보려고 했었습니다.

if에 넣은 내용들은 제대로 값을 출력해주는 반면 else에 해당하는 입력값을 넣으면 빈 숫자가 나오거나 제가 원한 답이 나오질 않습니다.

교수님의 도움을 구하고 싶습니다!

아래는 제 나름 해본 코드 입니다.

'''#include

include

int main()

{

using namespace std;

cout << "Enter a number or an alphabet character : ";

int a;

char b;

if (cin >> a)

{

cout << a << " " << static_cast<char>(a) << endl;

}

else

{

cout << b << " " << static_cast<int>(b) << endl;

}

return 0;

}'''

if 안에 cin이 있다고 하셔서 이것을 빼서 여러번 시도해 보았지만 뭐가 문젠지 아직 잘 안됩니다.

일단 아래의 코드처럼 시도해보았는데 여전히 문자를 치면 0이라고 나옵니다.

'''#include

include

int main()

{

using namespace std;

cout << "Enter a number or an alphabet character : ";

int a;

cin >> a;

if (a == static_cast<int>(a))

{

cout << a << " " << static_cast<char>(a) << endl;

}

else

{

cout << a << " " << static_cast<int>(a) << endl;

}

return 0;

}'''

답변 2

0

if문 안에 if(64<a<91 && 96<a<123)아스키 코드로 설정하시면 a는 문자 A~z까지 받습니다! 이렇게 설정하시고 나머지는 else로 받으시면 됩니다.

0

홍정모님의 프로필 이미지
홍정모
지식공유자

알고 있는 지식을 다 동원해서 해결하려고 노력하시는 것이 인상적이네요. 답답하신 마음도 충분히 이해합니다. 입력받은 '뭔가'가 문자(알파벳)인지 숫자인지를 구분하고 싶으신거죠? ASCII를 이용하셔야 합니다.

하가현님의 프로필 이미지
하가현

작성한 질문수

질문하기