#include <stdio.h>
int main(void)
{
char op;
int x;
int y;
printf("A---- Add\n");
printf("S---- Subtract\n");
printf("M---- Multiply\n");
printf("D---- Divide\n");
printf("Q---- Quit\n");
do
{
printf("연산을 선택하시오:");
scanf_s("%c", &op, sizeof(op));
switch (op)
{
case 'A':
printf("두 수를 공백으로 분리하여 입력하시오:");
scanf_s("%d %d", &x, &y);
printf("연산의 결과는 %d 입니다.\n\n", x + y);
break;
case 'S':
printf("두 수를 공백으로 분리하여 입력하시오:");
scanf_s("%d %d", &x, &y);
printf("연산의 결과는 %d 입니다.\n\n", x - y);
break;
case 'M':
printf("두 수를 공백으로 분리하여 입력하시오:");
scanf_s("%d %d", &x, &y);
printf("연산의 결과는 %d 입니다.\n\n", x * y);
break;
case 'D':
printf("두 수를 공백으로 분리하여 입력하시오:");
scanf_s("%d %d", &x, &y);
printf("연산의 결과는 %d 입니다.\n\n", x / y);
break;
case 'Q':
break;
default:
printf("연산을 선택하시오:");
continue;
}
} while (op != 'Q');
return 0;
}
자꾸 위에 처럼 병1신 같이 뜬다
난 ASDM 선택해서 제대로 실행하면 다시 반복하고
다른 ASDMQ말고 다른 글자 선택하면 선택하시오 한번 출력하고 싶은데...
문법도 이상한데 없는거 같은데 뭐가 문제냐 대체
ㅆㅂㅆㅂ 뭐때매 이래
scanf 입력후엔 키보드 버퍼에 엔터가 남아있으니
제일 처음 메뉴 고를때 scanf 대신 op = getchar(); 로 바꾸고
while 문 위에 getchar(); 그냥 한번 더 넣어주면 돌지 않을까나
ㄴ 아 먼 소린지 이해했는데 그럼 scanf_s만 그런게 아니고 scanf도 그런거임? 그럼 아에 로직을 바꿔야대??
아니 ㄱ럼 난 어캐
먼 소린지 이해했는데 어카냐니 이건 무슨 비문인가.
ㅋㅋㅋ - DCW
이런 경우는 아마 코드를 달란 의미인듯 - DCW
fflush 쓰면 안되양?
fflush( stdin ) 은 비표준이라 그닥.
글고 scanf %c 자체가 좀 개그지.
asdf//되양->돼양 (되어 = 돼임) [리듬 맞춤법 봇♬]
char op = NULL; 로 초기화 하고
if(op!=NULL) { while ((op = getchar()) != '\n' && op != EOF); }
scanf 위에 위 한줄 추가해라
이래도 못알아 들으면 그냥 C 접는게 정신건강에 좋을듯