if문을 활용한 간단한 계산기
int a, b;
char ch;
printf("첫번째 수를 입력하세요 :");
scanf("%d", &a);
printf("계산할 연산자fmf 입력하세요 :");
scanf("%*c%c", &ch); <==이 부분
printf("두번째 수를 입력하세요 :");
scanf("%d", &b);
if(ch =='+')
printf("%d + %d=%d입니다. \n",a, b, a+b);
if(ch =='-')
printf("%d - %d=%d입니다. \n",a, b, a+b);
if(ch =='*')
printf("%d * %d=%d입니다. \n",a, b, a+b);
if(ch =='/')
printf("%d / %d=%d입니다. \n",a, b, a+b);
if(ch =='%')
printf("%d % %d=%d입니다. \n",a, b, a+b);
책에꺼 그대로 적었다.
("%*c%c" <==이런 서식은 들어본적이 없는데, 도대체 뭘까?
%*c, %*d같이 쓰면 입력은 받지만 값은 변수로 저장하지 말고 그냥 버리라는 의미. 엔터 문자가 아직 버퍼에 남아있을텐데 그걸 %*c로 버려준 거임. 근데 저거보단 \" %c\"로 구현하는 게 더 깔끔하다.
왜 엔터가 남아있음?
%d입력 받을 때 사용자가 숫자 넣고 엔터 치잖. 엔터가 버퍼에 없으려변 숫자 넣고 Ctrl+Z치고 엔터(리눅스에서는 Ctrl+D)해야 하는데 이런 짓 하는 사람 거의 없으니...