앞에 0을 채워서 출력하려면 어떡해야 되죠?


우편번호처럼 딱 5자리 6자리에 맞춰 정수를 출력할 건데요 제가 짠 코드보다 더 쉬운 방법은 없을까요?

소스코드

/*
num : 출력할 정수, 
len : 자릿수
*/
void printWith0(int num, int len){
    int num0 = len-num/10;
    int i;
    for (i=1; i<num0; i++) {
        printf("0");
    }
    printf("%d", num);
}


int main() {
    int mynum = 1;
    printWith0(mynum, 5);
}
  • 2016년 01월 29일에 작성됨

조회수 269


1 답변


좋아요
0
싫어요
채택취소하기

c에 이 기능을 지원하는 형식 지정자가 있습니다. 지정자 %바로 뒤에 0을 붙이고, 그 뒤에 자릿수를 입력한 후, 타입에 맞는 형식 지정자를 추가합니다

단, 부동소수점의 경우는 정수부가 아니라 소수점 n자리까지 0을 채워달라는 의미이니 둘을 구분해서 써주세요

예제 :

int main() {
    printf("%05d\n", 303);
    printf("%010d\n", 303);
    printf("%05f\n", 3.03);
}

출력 :

00303
0000000303
3.030000
  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close