printf 함수를 이용한 실수 출력 시, 소수점 자리 및 너비를 지정하는 방법에 대한 간단한 정리.
예제 코드
1 2 3 4 5 6 7 8 | #include <stdio.h> #include <math.h> int main(int argc, const char * argv[]) { for (int i = 1; i <= 200; i+=10) printf(“%3d = %10.7f\n”, i, sqrt((double) i)); } | cs |
%d, 정수 출력
%3d는 공백을 포함하여 총 3의 길이를 갖는 정수를 출력합니다. 즉, 1을 출력 시엔 ” 1″, 10을 출력 시엔, ” 10″, 100을 출력 시엔 “100”을 출력합니다.
또한, 정수의 길이를 명시할 때, * 기호를 사용하여 아래와 같이 5의 길이를 가진 10을 출력할 수도 있다.
코드
printf ("Width trick: %*d \n", 5, 10);
출력
Width trick: 10
%f, 실수 출력
%10.7f는 크게 소수점 앞의 숫자 10과 소수점 뒤의 숫자 7로 나뉩니다. 여기서 10은 소수점 자리수를 포함하여 출력되는 숫자의 총 길이이며, 7은 소수점의 길이입니다. 소수점이 7의 자리수를 넘어갈 경우, 반올림 처리되며 총 숫자의 길이가 10에 미치지 못할 경우, 앞에서부터 공백처리합니다.
아래 출력 예제를 참조 바랍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 1 = 1.0000000 11 = 3.3166248 21 = 4.5825757 31 = 5.5677644 41 = 6.4031242 51 = 7.1414284 61 = 7.8102497 71 = 8.4261498 81 = 9.0000000 91 = 9.5393920 101 = 10.0498756 111 = 10.5356538 121 = 11.0000000 131 = 11.4455231 141 = 11.8743421 151 = 12.2882057 161 = 12.6885775 171 = 13.0766968 181 = 13.4536240 191 = 13.8202750 | cs |
아래 링크를 참조하시면 아래 예제 코드에 관련된 다양한 출력 방법에 대한 코드를 찾아보실 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> #include <math.h> int main(int argc, const char * argv[]) { printf (“Characters: %c %c \n”, ‘a’, 65); printf (“Decimals: %d %ld\n”, 1977, 650000L); printf (“Preceding with blanks: %10d \n”, 1977); printf (“Preceding with zeros: %010d \n”, 1977); printf (“Some different radices: %d %x %o %#x %#o \n”, 100, 100, 100, 100, 100); printf (“floats: %4.2f %+.0e %E \n”, 3.1416, 3.1416, 3.1416); printf (“Width trick: %*d \n”, 5, 10); printf (“%s \n”, “A string”); return 0; } | cs |
참조