printf는 빈칸 없이 문자열을 그대로 화면에 출력할 때 사용하는 대표적인 C언어 표준 출력 함수입니다.
가장 기본적인 사용 예시는 다음과 같습니다.
printf ("An ordinary string..");
printf ("Testing 1,2,3...");
그다음으로 자주 사용되는 형태는 정수 하나를 출력하는 경우입니다.
int number = 48;
printf ("%d",number);
문자열과 변환 문자는 아래와 같이 함께 조합하여 사용할 수도 있습니다.
int number = 48;
printf ("Some number = %d",number);
위 마지막 예제를 실행하면 화면에 다음과 같이 출력됩니다.
Some number = 48
printf 변환 문자의 종류
printf에서 사용되는 주요 변환 문자(conversion character)는 다음과 같습니다.
- %d − 부호 있는 10진수 정수(signed denary integer)
- %u − 부호 없는 10진수 정수(unsigned denary integer)
- %x − 16진수 정수(hexadecimal integer)
- %o − 8진수 정수(octal integer)
- %s − 문자열(string)
- %c − 단일 문자(single character)
- %f − 고정 소수점 방식의 실수(fixed decimal floating point)
- %e − 과학적 표기법(지수 형식)의 실수(scientific notation floating point)
- %g − %f와 %e 중 더 짧은 표현을 자동으로 선택
예제 프로그램
다음은 printf 변환 문자와 유형의 사용법을 보여주는 C 프로그램입니다.
/* printf Conversion Characters and Types */
#include <stdio.h>
main (){
int i = -10;
unsigned int ui = 10;
float x = 3.56;
double y = 3.52;
char ch = 'z';
char *string_ptr = "any old string";
printf ("signed integer %d\n", i);
printf ("unsigned integer %u\n",ui);
printf ("This is wrong! %u",i);
printf ("See what happens when you get the ");
printf ("character wrong!");
printf ("Hexadecimal %x %x\n",i,ui);
printf ("Octal %o %o\n",i,ui);
printf ("Float and double %f %f\n",x,y);
printf (" ditto %e %e\n",x,y);
printf (" ditto %g %g\n",x,y);
printf ("single character %c\n",ch);
printf ("whole string -> %s",string_ptr);
}
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
signed integer -10 unsigned integer 10 This is wrong! 4294967286See what happens when you get the character wrong!Hexadecimal fffffff6 a Octal 37777777766 12 Float and double 3.560000 3.520000 ditto 3.560000e+000 3.520000e+000 ditto 3.56 3.52 single character z whole string -> any old string
출력 결과에서 눈여겨볼 점은 This is wrong! %u 부분입니다. 음수인 -10을 부호 없는 정수인 %u로 출력했기 때문에 4294967286이라는 엉뚱한 값이 나옵니다. 이처럼 변환 문자와 변수의 자료형이 일치하지 않으면 잘못된 결과가 출력되므로, 항상 자료형에 맞는 변환 문자를 사용해야 합니다.