본문 바로가기

Coding Tests/코드업

코드업 기초100제 1018번(scanf 입력형태)

어떤 형식에 맞추어 시간이 입력될 때, 그대로 출력하는 연습을 해보는 문제이다.

 

#include <stdio.h>
int main(void)
{
    int h , m;
    scanf("% d:%d",&h,&m);   입력창에서 3:16과 같은 형태로 입력을 해주어야 한다. 평소 입력했듯이 공백을 두게 되면
    printf("% d:%d", h, m);       출력 값에서 오류가 나게 된다.
    return 0;
}

 

#include <stdio.h>
int main(void)
{
    int h , m;
    scanf("% d^%d",&h,&m);     3과 16을 입력해준다 하면 3^16으로 입력을 해주어야 정상적인 출력 결과를 얻을 수
    printf("% d^%d", h, m);         있다.
    return 0;
}

 

scanf()는 지정한 형식에 따라 입력받는 함수이다. 따라서 입력받고자 하는 형식으로 표현해주면 된다.

 

#include <stdio.h>
int main(void)
{
    int h , m;
    scanf("% d % d",&h,&m);   입력을 할 때 공백을 통해 입력값을 구분하여 준다.      
    printf("% d % d", h, m);       
    return 0;
}

 

 

scanf("% d 입력을 받을 서식 문자가 공백없이 붙어 있더라도 입력창에서 스페이스 바 한번 띄고 입력을 해주면 된다. 공백을 주지 않으면 입력값을 구분하지 못하여 하나의 입력으로 보게되기 때문.

 

scanf("%d     %d",&h,&m); 이렇게 서식문자 사이가 많이 떨어져 있더라도 스페이스 바 한번 띄고 입력을 해주면 출력 값이 정상적으로 나온다.

 

scanf("% d!     % d",&h,&m); 가운데! 가 있고 불규칙적으로 공백이 있다면? 그대로 공백을 입력해줘야 할까?

입력을 해 보았는데 그렇지 않았다. 3과 16을 입력한다 했을 때 3! 16을 입력해주면 되었다.