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

Jason Hong님의 프로필 이미지
Jason Hong

작성한 질문수

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

5.10 std::cin 더 잘 쓰기

연습문제질문입니다

작성

·

231

3

안녕하세요. 강의중에

switch(op){
case '+':
cout << x+y << endl;
case '-':
cout << x-y << endl;

위와 같은 방식으로 일일이 하지 않고 곱하기랑 나누기 케이스도 해보라고 하셨는데, 검색을 해봐도 쉽지않네요. 혹시 제가 아이디어를 얻을 수 있을 곳이 있을까요?

 

답변 3

0

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

저도 오랫만이라서 강의를 다시 봤는데, 궁금해하시는 내용은 객체지향 프로그래밍과 관련된 내용입니다. 뒷부분을 공부하실 때 효율을 높이기 위해 호기심을 불러일으키기 언급한 것인데 정확히 받아들이신 것 같습니다. 뒷부분 공부하신 후에 잊지 않고 다시 풀어보셨으면 좋겠네요.

0

Jason Hong님의 프로필 이미지
Jason Hong
질문자

 6:48 부터 7:20 정도 입니다.

설명하실 때,

getOperator 만 수정하고 printResult는 수정을 안해도 될 수 있다고 하셨는데, operator를 입력값으로 받았을때, switch 같은 것을 이용하지 않고 입력값 자체를 연산을 하는데 사용할 수 있는 방법을 잘 모르겠네요. 예를 들면 '+' 를 + 로 사용하는 것이요.  감사합니다!

char getOperator()
{
while(true) {
cout << "Enter an operator (+,-) : "; //
char op;
cin >> op;
std::cin.ignore(32767, '\n'); //empty buffer

if (op =='+' || op == '-')
return op;
else
cout << "Invalid operator, please try again" << endl;
}
}

void printResult(int x, char op, int y)
{
switch(op){
case '+':
cout << x+y << endl;
case '-':
cout << x-y << endl;
default:
cout << "Invalid operator" << endl;
}
}

 

0

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

안녕하세요? 질문하실 때 막연히 '강의중'이라고 하시면 어디인지 제가 찾을 수 없습니다. 정확히 몇 분 몇 초인지 적어주세요. learncpp.com을 추천합니다.

Jason Hong님의 프로필 이미지
Jason Hong

작성한 질문수

질문하기