[C언어] 5. printf()
이번에는 C언어의 자료형(기본자료형)에 대해 알아보자.
printf()
printf()란?
1) printf()란 👉 일련의 문자(값)로 서식을 지정하여 콘솔에 출력하는 함수
2) printf()의 구성
printf("형식문자열",출력목록);
printf("height:%d\n", height);
- 형식문자열(format string) : 일반문자열, 형식지정자, 이스케이프 문자
- 츨력목록: 변수, 상수, 표현식
- 형식지정자(format specifier)
- 콘솔에 출력되는 문자열 내부에서 자료형을 출력하기 위해 필요
- = 형식제어문자, 변환지정자/변환문자(conversion character), 서식사양, 변환명세(conversion specification)
%[flag][width][.precision][length]specifier
3) 형식지정자
- specifier
변환 | 출력사양 | 변환 | 출력사양 |
---|---|---|---|
%a | 부동 소수점 수, 16진수, p-표기법(소문자) | %x | 부호가 없는 16진 정수, 소문자 알파벳 사용 |
%A | 부동 소수점 수, 16진수, P-표기법(대문자) | %X | 부호가 없는 16진 정수, 대문자 알파벳 사용 |
%c | 문자 1개 | %s | 문자열 |
%d | 부호가 있는 10진(decimal) 정수(integer) | %u | 부호가 없는 10진 정수 |
%i | 부호가 있는 10진(decimal) 정수(integer) | ||
%e | 부동 소수점 수, e-표기법(소문자) | %f | 부동 소수점 수, 10진수 표기, printf가 double로 변환 |
%E | 부동 소수점 수, E-표기법(대문자) | ||
%g | 값에 따라 %e 나 %f 사용 => 더 짧은 것지수가 -4보다 작거나 정밀도보다 크거나 같을 경우 %e | %G | 값에 따라 %E 나 %f 사용 => 더 짧은 것지수가 -4보다 작거나 정밀도보다 크거나 같을 경우 %E |
%o | 부호가 없는 8진(octal) 정수 | %p | 포인터 |
%% | 퍼센트 기호 출력 |
- [Flag]
[Flag] | 설명 |
---|---|
- | 지정된 필드 너비 내에서 왼쪽 정렬 / (기본값 오른쪽 정렬) |
+ | 양수도 +부호 사용 / (기본값 음수만 -부호 표시) |
(space) | 부호를 쓰지 않을 경우 값 앞에 공백 삽입 |
# | ▫️ o, x(X) 지정자와 사용: 0이 아닌 값 앞에 각각 0, 0x, 0X가 붙음 ▫️ a(A), e(E), f(F), g(G)와 사용: 정수값도 소수점 표현 ▫️ (기본값): 정수는 정수로 출력 |
0 | 공백 대신 숫자 0으로 숫자 왼쪽을 채움 |
- [width]
[width] | 설명 |
---|---|
(number) | ▫️ 인쇄할 최소 문자 수 ▫️ 출력값이 더 짧으면 공백으로 채워짐 ▫️ 출력값이 더 길면 잘리지 않고 그대로 출력 |
* | ▫️ 너비가 형식문자열에 의해 지정되지 않음 ▫️ 형식을 지정해야 하는 인수 앞에 추가 정수 값 인수로 지정 |
- [.precision] - 정밀도
[.precision] | 설명 |
---|---|
.number | ▫️ d , i , o , u , x(X): 기록할 최소 자릿수 지정 =>출력 값이 짧으면 0이 채워지고, 더 길더라도 값은 잘리지 않음 ▫️ a(A), e(E), f(F): 소수점 뒤에 인쇄할 자릿수 / (기본값 6) ▫️ g(G) : 인쇄할 최대 유효 숫자 수 ▫️ s: 인쇄할 최대 문자 수 / (기본값 : 종료 null 문자가 나타날 때까지 모든 문자가 인쇄) ▫️ 명시적인 값 없이 .을 사용하면 0 가정 |
.* | ▫️ 너비가 형식문자열에 의해 지정되지 않음 ▫️ 형식을 지정해야 하는 인수 앞에 추가 정수 값 인수로 지정 |