C언어 출력시 printf로 자료형, 줄바꿈, 자릿수 설정하기

C언어는 출력 함수로 printf()를 사용하며 자료형을 같이 기입합니다. 출력 가능 자료형에는 정수(%d), 실수(%f), 문자(%c), 문자열(%s) 등이 있습니다. 두 개 이상의 데이터도 한 번에 출력할 수 있습니다.

printf() 함수는 데이터를 출력합니다.

printf("자료형", 데이터);

Python, JavaScript, PHP와 같은 웹 프로그래밍 언어와 달리 C언어는 출력시 자료형을 같이 적는다는 차이점이 있습니다.

#include<stdio.h>
void main() {
	printf("%d", 7); //정수 7 출력
}

결과

7

출력 가능 자료형의 종류

자료형의 종류는 %d(정수), %f(실수), %c(문자), %s(문자열) 등이 올 수 있습니다.

#include<stdio.h>
void main() {
	printf("%d", 33); //정수 33 출력
	printf("%f", 0.3); //실수 0.3 출력
	printf("%c", 'A'); //문자 A 출력
	printf("%s", "안녕하세요."); //문자열 안녕하세요. 출력
}

결과

330.300000A안녕하세요.

정수는 -3, -2, -1과 같은 음의 정수, 0 그리고 +1, +2, +3과 같은 양의 정수를 말합니다.

실수는 정수 보다 큰 범위의 수입니다. 허수를 제외한 유한 소수(0.3), 유리수(1/3), 무리수(√2), 순환 소수(0.3333...) 등이 모두 포함된 범위입니다.

문자는 a, b, K와 같은 단일 문자를 말하며 작은 따옴표 ''사이에 삽입합니다. 문자열은 'hello'와 같은 두 개 이상의 문자 조합을 말하며 큰 따옴표 "" 사이에 삽입합니다.

줄바꿈

\n 기호는 줄바꿈 효과를 줍니다. HTML 태그의 <br> 태그와 비슷한 효과입니다. 실수의 경우 하단에서 배울 자릿수 지정을 하지 않으면 소수 여섯 자리까지 자동으로 출력됩니다.

#include<stdio.h>
void main() {
	printf("%d", 33); //정수 33 출력
	printf("\n"); //줄바꿈
	printf("%f", 0.3); //실수 0.3 출력
	printf("\n"); //줄바꿈
	printf("%c", 'A'); //문자 A 출력
	printf("\n"); //줄바꿈
	printf("%s", "안녕하세요."); //문자열 안녕하세요. 출력
}

결과

33
0.300000
A
안녕하세요.

\n 기호는 코드 길이를 줄이기 위해서 일반 자료형 바로 뒤에 "%d\n"과 같이 붙여서 작성해도 됩니다.

#include<stdio.h>
void main() {
	printf("%d\n", 33); //정수 33 출력하고 줄바꿈함
	printf("%f\n", 0.3); //실수 0.3 출력하고 줄바꿈함
	printf("%c\n", 'A'); //문자 A 출력하고 줄바꿈함
	printf("%s", "안녕하세요."); //문자열 안녕하세요. 출력
}

결과

33
0.300000
A
안녕하세요.

문자열 자료형의 경우 %s없이 사용할 수 있습니다.

추후 수정이 필요 없는 경우 %s를 생략하고 사용할 수 있습니다.

#include<stdio.h>
void main() {
	printf("안녕하세요?");
}

결과

안녕하세요?

두 개 이상의 데이터 출력

두 개 이상의 데이터를 출력하려면, 자료형의 개수도 대응시켜줘야 합니다. 자료형 사이는 쉼표나 따옴표없이 공백 한 칸을 입력후 삽입합니다.

printf("자료형1 자료형2 ... 자료형n", 데이터1, 데이터2, ... 데이터n);
#include<stdio.h>
void main() {
	printf("%d %d", 9, 3); //정수 9 및 정수 3을 출력
	printf("\n"); //줄바꿈
	printf("%s %c %d", "원하는 점수는?", 'A', 100); //문자열, 문자 A, 정수 100을 차례로 출력
}

결과

9 3
원하는 점수는? A 100

정수, 문자열 자릿수

정수(%d)와 문자열(%s)은 자릿수 숫자를 "%9d" 처럼 %와 알파벳 사이에 삽입합니다. 기입 숫자만큼 자릿수가 결정되며 우측정렬됩니다. 정수는 앞에 0을 삽입하면 공백 숫자만큼 0이 삽입됩니다.

#include<stdio.h>
void main() {
	printf("%9d", 333); //총자릿수 9자리가 확보되고, 앞에 공백 6칸이 생깁니다. 정수 333은 3칸을 차지하며 우측 정렬됩니다.
	printf("\n"); //줄바꿈
	printf("%09d", 333); //앞에 0을 붙이면 공백에 0이 채워집니다.
	printf("\n"); //줄바꿈
	printf("%11s", "푸하하"); //총자릿수 11자리가 확보되고, 앞에 공백 9칸이 생깁니다. 문자열 "푸하하"는 3칸을 차지하며 우측 정렬됩니다.
}

결과

      333
000000333
     푸하하

실수 자릿수

실수 자료형의 기본 자릿수는 소수 6 자리까지 표현됩니다. "%5.2f" 처럼 %f사이에 소수형태의 숫자를 삽입해서 자릿수를 정의합니다.

#include<stdio.h>
void main() {
	printf("%f", 0.1); //실수 0.1이 아닌 소수 여섯짜리까지 표현된 0.100000이 출력됩니다.
	printf("\n"); //줄바꿈
	printf("%5.2f", 0.1); //총 다섯자릿수가 확보되며 소수 둘째자릿수까지 표현되므로 0.10이 출력됩니다. 앞에 남는 자릿수에 공백이 지정되며 숫자는 우측정렬됩니다.
}

결과

0.100000
 0.10

삽입된 숫자의 정수 부분의 숫자값은 총 자릿수를 정의합니다. 소수 부분의 숫자값은 소수의 자릿수를 결정합니다.