Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C언어 printf 변환 문자의 종류와 유형 완벽 정리

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이라는 엉뚱한 값이 나옵니다. 이처럼 변환 문자와 변수의 자료형이 일치하지 않으면 잘못된 결과가 출력되므로, 항상 자료형에 맞는 변환 문자를 사용해야 합니다.