c언어에서 getchar가 작동하지 않습니다.

조회수 38회

include

float sum(float, float); float dif(float, float); float mul(float, float); float div(float, float);

float sum(float x, float y) { return x+y; }

float dif(float x, float y) { return x-y; }

float mul(float x, float y) { return x*y; }

float div(float x, float y) { return x/y; }

int main(void) { float x, y; printf("두 실수를 입력해주세요"); scanf("%f %f", &x, &y);

printf("두 실수의 합: + \n");
printf("두 실수의 차: - \n");
printf("두 실수의 곱: * \n");
printf("두 실수의 나누기: / \n");
printf("원하시는 기능을 선택해주세요");
**char op = getchar();**

switch(op)
{
    case '+': printf("합은 :%f", sum(x, y)); break;
    case '-': printf("차는: %f", dif(x, y)); break;
    case '*': printf("곱은: %f", mul(x, y)); break;
    case '/': printf("몫은: %f", div(x, y)); break;
}   
return 0;

}

char op = getchar()가 작동하지 않고 바로 종료됩니다. 어디가 문제인가요?

1 답변

  • #include <stdio.h>
    
    main(){
            float x, y;
            printf("두 실수를 입력해주세요");
            scanf("%f %f", &x, &y);
            printf("두 실수의 합: +\n");
            printf("두 실수의 차: - \n");
            printf("두 실수의 곱: * \n");
            printf("두 실수의 나누기: / \n");
            printf("원하시는 기능을 선택해주세요 %c", getc(stdin));
    
            switch(getc(stdin)) {
                    case '+': printf("합은: %f", x + y); break;
                    case '-': printf("차는: %f", x - y); break;
                    case '*': printf("곱은: %f", x * y); break;
                    case '/': printf("몫은: %f", x / y); break;
            }
    
            return 0;
    }
    

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.