- 3줄 요약 -
- printf는 print(출력) + format(형식)을 의미한다.
- 문법은 ("%포멧", 변수1, 변수2)이다.
- %? 에서 ?의 형식을 모두 외울 필요 없고, 그 때 그 때 가져다가 쓰면 된다. 있다는 것만 알고 다음 단원 ㄱㄱ
printf 함수는 가장 초반에 등장하지만, 굉장히 잘 구현되었고, 이해하기 어려운 함수이다. 문자열을 출력할 때, 포멧을 정해주고, 그 포멧에 맞추어서 이쁘게 편집한 후에 출력하는 기능을 담당한다. 출력 방법을 암기할 필요는 없다.
- printf("포멧", args ...);
포멧 | 설명 | 예제코드 | 출력 |
%d, %i | 10진수 출력 단, %i는 8진수(01)와, 16진수 입력(0x1)을 받을 수 있다. |
printf("%d\n", 0xff); | 255 |
%u | 10진수 출력(부호없음) | printf("%u\n", -1); | 4294967295 |
%f, %F | 소수 출력 | double f = 1; for (int i = 1; i < 9; i++) { f /= 10; printf("%f\n", f); } |
0.100000 0.010000 0.001000 0.000100 0.000010 0.000001 0.000000 0.000000 |
%e, %E | 부동소수점으로 표현 (대/소문자 : E/e가 다름) |
double f = 1; for (int i = 1; i < 9; i++) { f /= 10; printf("%E\n", f); } |
1.000000E-01 1.000000E-02 1.000000E-03 1.000000E-04 1.000000E-05 1.000000E-06 1.000000E-07 1.000000E-08 |
%g, %G | 소수와 부동소수점 병합 (대/소문자 : E/e가 다름) |
double f = 1; for (int i = 1; i < 9; i++) { f /= 10; printf("%g\n", f); } |
0.1 0.01 0.001 0.0001 1e-05 1e-06 1e-07 1e-08 |
%x, %X | 16진수로 출력 | printf("%x\n", 123456789); printf("%X\n", 123456789); |
75bcd15 75BCD15 |
%o | 8진수로 출력 | printf("%o\n", 123456789); | 726746425 |
%s | 문자열 출력(null까지 출력) | printf("%s\n", "안녕하세요"); printf("%s\n", "안녕\0하세"); |
안녕하세요 안녕 |
%c | 문자 출력 | printf("%c\n", 'h'); printf("%c\n", "Hello"); |
h 0 |
%p | 주소를 표현하기 위한 방식 (%X로 출력시 8자리 이상에서 문제 발생) |
unsigned long long p = 0xABCDEF12; for (int i = 0; i <= 20; i+=4) { printf("%p\n", p << i); } ------------------- for (int i = 0; i <= 20; i+=4) { printf("%016x\n", p << i); } |
00000000ABCDEF12 0000000ABCDEF120 000000ABCDEF1200 00000ABCDEF12000 0000ABCDEF120000 000ABCDEF1200000 ---------------- 00000000abcdef12 00000000bcdef120 00000000cdef1200 00000000def12000 00000000ef120000 00000000f1200000 |
%a, %A | double 출력 16진수로 표현 |
unsigned long long p = 0xABCDEF12; for (int i = 0; i <= 40; i+=8) { printf("%A\n", p << i); } |
0X0.00000ABCDEF12P-1022 0X0.000ABCDEF1200P-1022 0X0.0ABCDEF120000P-1022 0X1.BCDEF12000000P-1013 -0X1.DEF1200000000P-323 -0X1.F120000000000P+223 |
%n | 삭제됨 (자바에서 새줄표시) |
(오류) |
댓글