C_C++/C_라이브러리_함수

(C언어) printf: 지정된 서식으로 표준 출력에 출력한다

고니자니 2023. 2. 23. 12:02
반응형
#include <stdio.h>
int printf(const char *format[, argument, ...]);

printf  함수는 연속적인 인수를 받아서 format으로 지정된 서식에 따라 데이터를 서식화해서 표준 출력(stdout)에 출력합니다.

 

... 포맷 지정자는 다음과 같은 형식을 가지고 있습니다.

%[ flags ] [ width ] [ .prec ] [h | l | L] type

각 서식 지정자는 % 기호가 앞에 오고, 이 기호 뒤에 다음과 같은 값이 나열될 수 있습니다.

  • 연속적인 [ flags ] 문자들을 선택적으로 사용할 수 있습니다.
  • 넓이를 나타내는 [ width ]를 선택적으로 사용할 수 있습니다.
  • 정밀도를 나타내는 [ .prec ]을 선택적으로 사용할 수 있습니다.
  • 입력 크기를 나타내는 [ h | l | L ]을 선택적으로 사용할 수 있습니다.
    • h: shot int
    • l : long
    • L : long double
  • 변환 형식 문자 [ type ]을 선택적으로 사용할 수 있습니다.

 

...의 변환 문자 형식(conversion type)

숫자 형식

d 정수 Signed 10진수
i 정수 Signed 10진수
o 정수 8진수
u 정수 unsigned 10진수
x
X
정수 16진수
x: a,b,c,d,e,f의 소문자로 출력
X: A, B, C, D, E, F의 대문자로 출력
f 실수(부동 소수점)  
g
G
실수(부동 소수점) f 또는 e 형식 중 간략한 형식으로 출력
e
E
실수(부동 소수점) 지수 형식
d.dddddd 형식

 

문자 형식

c 문자 한 문자
s 문자열 포인터 NULL로 종료된 문자 또는 지정된 길이 만큼 출력
%   %%‘%’ 한 문자 출력

 

포인터

p 포인터 주소를 16진수 형식으로 출력

 

 

예제 1: 서식을 사용하지 않고 문자열만 출력

#include <stdio.h>
int main()
{
	printf("Hi, C Language.\n");
	printf("안녕, C 언어.\n");
	return 0;
}

printf: 문자열만 출력하기

 

예제 2: 정수 형식의 숫자 출력하기

#include <stdio.h>
int main()
{
	short a = 100;
	int b = 5000;
	long c = 1234567;

	printf("%hd\n", a);
	printf("%d\n", b);
	printf("%ld\n", c);
	
	return 0;
}

printf: 정수 출력하기

 

예제 3: 정수를 10, 8, 16진수로 출력하기

#include <stdio.h>
int main()
{
	int a = 127;

	printf("%d\n", a);
	printf("%o\n", a);
	printf("%x\n", a);
	printf("%X\n", a);
    
	return 0;
}

printf: 10진수, 8진수, 16진수로 출력하기

 

예제 4: 정수를 자리수 맞추어서 출력하기

#include <stdio.h>
int main()
{
	int a = 1;
	int b = 123;
	int c = 1234567;

	printf("%7d\n", a);   // 7자리. 앞 부분에 공백으로 채움
	printf("%7d\n", b);
	printf("%7d\n", c);
	printf("%07d\n", a);   // 앞 부분은 0으로 채움
	return 0;
}

printf: 자릿수 맞추어서 출력하기

 

예제 5: 실수 출력하기

#include <stdio.h>
int main()
{
	float a = 123.45;
	double b = 1234.56789;

	printf("%f\n", a);      // 기본으로 소수는 6자라로 출력됨. 정밀도 문제로 출력에 문제 있음
	printf("%f\n", b);
	printf("%6.2f\n", a);   // 전체자리수 6. 소수 자리수 2
	printf("%.2f\n", a);    // 소수 자리수 2
	printf("%.2f\n", b);

	printf("%e\n", b);    // 지수
	printf("%E\n", b);
	return 0;
}

printf: 실수 형식 출력

 

예제 5: 포인터 출력

#include <stdio.h>
int main()
{
	int a = 100;

	printf("%p\n", &a);  // &a: 변수 a의 주소
	printf("%x\n", &a);
	printf("%X\n", &a);
		
	return 0;
}

printf: 포인터(주소) 출력

 

예제 6: %e, %f, %g 출력 비교

#include <stdio.h>
int main()
{
	double a = 123.5;

	printf("%f\n", a);
	printf("%e\n", a);
	printf("%g\n", a);
		
	return 0;
}

printf: %f, %e, %g 출력 형식 비교

 

 

 

반응형