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

조회수 717회
#include <stdio.h>

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 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    #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;
    }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)