Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

출력함수 printf 본문

프로그래밍 언어/C언어

출력함수 printf

세레프 2023. 2. 3. 04:59

 프로그래밍 프로그램을 처음 접하게 되면, "Hello world"를 출력할 수 있는 코드를 보여주고, 그 코드를 실행하여, "Hello world"의 출력을 확인한다. 이때 사용하는 함수가 출력함수 "printf"이다. 그렇다면 이 출력함수가 무엇이고, 어떻게 사용되는 것일까?

 

출력함수 printf()

 출력함수 화면에 소스코드의 결과를 출력하기 위해 사용하는 함수로, 주로 사용하는 "printf"가 출력함수 중 대표적인 예시이다. 그럼 이 printf 출력함수는 어떻게 구성되어 있는지 알아보자.

#include <stdio.h>
void main() {
	printf("C언어\n"); 
	printf("%c\n",'a');
	printf("%d\n", 3); 
	printf("%s\n", "출력함수");
}

여러형식의 데이터를 출력하는 소스코드와 출력결과

 보통 printf의 출력방식은 문자열이기 때문에, 문자열을 출력할 때에는 소괄호 안에 형식을 따로 두지 않는다.

printf("내용")

 이 형식은 기본적인 형식으로, 소괄호에 있는 문자열을 모니터에 출력하고 싶을 때, 사용하는 형식이다. 소스파일의 3번째 줄을 보면, 소괄호 안에 별 다른 형식이 없어도, 출력결과가 "C언어"인 것을 확인할 수 있다. 

 

 정수형, 실수형, 문자형 출력의 경우에는 문자열로 출력할 수 없기 때문에, 소괄호 안에 어떤 형식을 두고 사용해야 한다.

printf("형식지정자",변수)

 이러한 형식을 형식지정 출력형식이라고 하며, 변수의 형식에 맞게 모니터에 출력하는 형식이다. 소스파일의 4번째 줄부터 보면, 소괄호 안에 형식지정자(%c, %d, %s)를 이용하여 출력할 변수의 형식을 정하고 출력하는 것을 확인할 수 있다.

 

 이때 형식지정자라는 것을 사용하게 되는데, 형식지정자(변환 문자)출력하고자 하는 변수의 형식을 지정하는 문자이다. 형식지정자의 종류는 여러 가지가 있는데, 우리는 주로 사용하는 것에 대해서만 알아볼 것이다.

형식지정자(변환문자) 내용
%d 부호있는 10진수 정수형으로 출력
%f 소수점 고정형식으로 출력
%lf  double형 실수를 소수점 고정형식으로 출력
%c 하나의 문자를 출력
%s 여러개의 문자(문자열)를 출력 (문자열 값을 가진 변수를 출력할 때 사용)

  하나의 형식지정자엔 하나의 값만 들어간다. 형식지정자가 데이터 갯수보다 부족하면 출력이 되지 않으며, 초과하면 쓰래기값이 출력된다. 그래서 형식지정 출력형식을 사용할 때, 형식지정자를 2개 이상 사용하는 경우가 있는데, 이 때는 어떻게 해야 하는 것일까?

#include<stdio.h>

void main() {	
	int a = 20, b = 10 , c, d;
	c = a + b;
	printf("%d+%d=%d\n",a,b,c);

	d = a - b;
	printf("%d-%d=%d\n", a, b, d);

	printf(" %d*%d = %d\n",a,b,a*b);
	printf("%d/%d=%d", a, b, a/b);
}

변수 a=20,변수b=10 설정 후, 사칙연산의 소스코드와 출력결과

 위의 소스코드를 보면, 형식지정자가 3개이며 사용되는 변수도 3개인 것을 알 수 있다. 즉, 사용하는 형식지정자의 수만큼 변수의 갯수도 같아야 한다. 그렇게 함으로써 첫 번째 형식지정자부터 변수를 차례대로 대입이 가능해진다. 6번째 줄을 예시로 들면, "printf("%d+%d=%d\n",a,b,c);"에서 첫 번째"%d"는 변수 a를, 두 번째"%d"는 변수 b를, 마지막"%d"는 변수 c를 대입하는 것을 알 수 있다.

 추가로, 형식지정 출력형식에서 정수나 실수를 출력할 때, 자릿수를 지정해서 출력을 할 수 있다.

printf("%빈 칸에 채울 숫자 사용할 칸수.소수점이하자릿수 형식지정문자",출력값);

 위의 형식이 자릿수를 지정하여 정수나 실수를 출력할 수 있게 하는 형식이며, 정수의 경우에는 소수점이 없기에 소수점이하자릿수를 제외하고 작성하면 되며, 뒤로 공간을 둘 경우에는 사용할 칸 수의 값을 음수로 하면 된다.

#include<stdio.h>

void main(){
	printf("%d\n", 123);
	printf("%5d\n", 123);  //5번째 자리만 사용하며 뒤에서 부터 채울 것
	printf("%05d\n", 123); //5자리 띄우지만 띄운자리는 0으로 채울것
	printf("\n");
	printf("%f\n", 123.45);
	printf("%6.1f\n", 123.45);
	printf("%.3f\n", 123.45);
   }

 "printf("%5d\n", 123);"는 출력할 때 5칸을 사용한다는 뜻이며, 뒤에서 부터 숫자가 출력된 것을 볼 수 있다. 마찬가지로 "printf("%05d\n", 123)"를 보면 5칸을 사용하는 것을 확인 할 수 있다. 그런데 "printf("%5d\n", 123);"와 달리 빈칸에 "0"으로 채워져 있는것을 확인할 수 있는데, 이는 "%05d\n"이기 때문이다.

 

 "printf("%6.1f\n", 123.45);"의 출력결과를 한번 보자. 자릿수는 6이고 소수점 이하의 수는 1로 되어있다. 이는 자릿값 6에서 소수점 둘째 자리는 반올림하여 소수점 이하 첫째 자리까지 출력하라는 코드이며, 실제로 출력결과를 보면 "□123.5"이다.

 

제어문자

 지금까지 사용한 소스코드들을 보면 "\n"이라는 문자가 있는 것을 확인할 수 있다. 이것은 제어문자라고 한다. 제어문자란 문자는 아니지만, 출력방식에 영향을 주는 문자이다.

제어문자 기능
\n 줄 바꿈
\t 탭 문자 출력(띄어쓰기 4번)

 이 제어문자를 사용하는 방법은 내용이나 형식지정자를 작성하는 곳에 필요한 만큼 추가하여 사용하면 된다. 예를 들면, 출력결과에 2줄을 남겨두고 싶으면 "printf("출력값\n\n")으로 작성하면 된다.

'프로그래밍 언어 > C언어' 카테고리의 다른 글

기타 입출력함수  (0) 2023.02.05
입력함수 scanf  (0) 2023.02.04
상수와 키워드  (0) 2023.02.02
변수와 자료형  (0) 2023.02.01
C언어 프로그래밍의 기본  (1) 2023.01.31
Comments