14번째 - 필드 폭 지정.

C언어 기초 2015. 4. 16. 09:00 Posted by 네트동자

서식문자에 적절한 옵션을 추가하면 

출력되는 데이터 필드의 폭을 조절할 수 있다.


다시 말해,

일정한 간격으로 데이터를 출력할 수 있게 해준다.


다음은 '서식 문자'에 옵션을 추가하는 예들이다.


%03d 필드 폭을 3칸 확보, 오른쪽으로 정렬해서 출력, 남은 자리는 0으로 채움.

%-3d 필드 폭을 3칸 확보, 왼쪽으로   정렬해서 출력.

%+3d 필드 폭을 3칸 확보, 오른쪽으로 정렬해서 출력, 양수는 +부호를 붙이고

                                                             음수는 -부호를 붙여서 출력.




다음 예제를 통해 연습해보자.


01: #include <stdio.h>

02: int main(void)

03: {

04: printf("%03d, %03d, %03d \n", 1, 20, 300);

05: printf("%-3d, %-3d, %-3d \n", 1, 20, 300);

06: printf("%+3d, %+3d, %+3d \n", 1, 20, 300);

07: printf("%+3d, %+3d, %+3d \n", 1, 20, -300);

08:

09: return 0;

10: }



결과값.


001, 020, 300

1  , 20 , 300

 +1, +20, +300

 +1, +20, -300

계속하려면 아무키나 누르십시오 . . .


 06행과 07행은 

%+3d 필드 폭을 3칸 확보, 오른쪽으로 정렬해서 출력, 양수는 +부호를 붙이고

                                                             음수는 -부호를 붙여서 출력.

위의 서식 문자 옵션에 따라 각각 데이터값에 +, - 부호를 붙여서 출력하게 된다.


01: #include <stdio.h>

02: int main(void)

03: {

04: printf("%f \n", 0.000123);    //소수점이하 6자리

05: printf("%f \n", 0.0001236);   //소수점이하 6자리 초과

06:

07: printf("%e \n", 0.000123);    //소수점이하 6자리

08: printf("%E \n", 0.0001236);   //소수점이하 6자리 초과

09:

10: printf("%g \n", 0.000123);    //소수점이하 6자리

11: printf("%G \n", 0.0000123456);//소수점이하 6자리 초과

12:

13: printf("올해 우리나라 경제 성장률은 5%%입니다. \n");

14:

15: return 0;

16: }



실행결과는 다음과 같다.



0.000123

0.000124

1.230000e-004                     // 1.23*  (10의 -4승)   을 의미

1.236000E-004                     // 1.236* (10의 -4승)   을 의미

0.000123

1.2345E-005                        // 1.23456* (10의 -5승) 을 의미

올해 우리나라 경제 성장률은 5%입니다.




12번째 10진수 정수(양수) - %u

C언어 기초 2015. 4. 16. 09:00 Posted by 네트동자

01: #include <stdio.h>

02: int main(void)

03: {

04: printf("%d \n", 2147483647);   //2147483647

05: printf("%d \n", 2147483650);  //-2147483646

06: printf("%u \n", 4294967295);   //2147483647의 약 2배

07:

08: return 0;

09: }



서식문자 %u를 사용하면 

%d로 출력할 수 있는 양수의 범위보다

2배 더 넓게 출력할 수 있다.


위의 예제는 서식문자 %d와 %u의 차이를 잘 설명하고 있는 코딩이다.


04행은 서식문자 %d로 표현할 수 있는 최대값 2147483647을 출력했다.

05행은 서식문자 %d가 출력할 수 있는 최대값을 넘어서는 수치가 기입되었기에 이상한 음수값이 출력되었다.


06행은 서식문자 %d로 표현할 수 있는 최대값 2147483647보다 큰 값을 출력하기 위해서

          서식문자 %u를 사용하고 있다.

          서식문자 %u로 표현할 수 있는 최대값은 4294967295 이다. 

          이 값은 %d로 출력할 수 있는 최대값의 약 2배이다.


그럼에도 불구하고, %u 역시 표현할 수 있는 최대값보다 큰 값을 대입하면, 서식문자 %d와 마찬가지로 이상한 값이 출력된다.