안녕하세요 열코입니다.

이번 시간에는 C언어 표준 출력 함수인 printf() 함수에 대해 알아보겠습니다.

printf() 함수는 stdio.h 헤더파일에 정의되어 있으며,

사용하기 위해서는

1
#include <stdio.h>
cs

코드를 추가하여 사용할 수 있습니다.


☞ 함수 프로토타입

printf() 함수의 프로토타입은 다음과 같습니다.

1
int printfconst char *format, [argument]... );
cs

반환값은 int형이며, 출력하는 문자의 개수를 반환합니다.


첫번째 인수값으로 형식 필드 문자를 넘겨줍니다.

형식 필드 문자는 다음과 같습니다.


 형식

 인수

 출력

 %c

 문자

 단일 바이트 문자

 %d

 정수

 부호 있는 10진수 정수

 %o

 정수

 부호 없는 8진수 정수

 %u

 정수

 부호 없는 10진수 정수

 %x

 정수

 부호 없는 16진수 정수

 %e

 부동 소수점

 부호 있는 부동 소수점

 %f

 부동 소수점

 부호 있는 부동 소수점

 %a

 부동 소수점

 부호 있는 16진수 부동 소수점
 %p 포인터 유형

 16진수 주소

 %s

 문자열

 문자열

 %lf

 부동 소수점

 부호 있는 (long) double


예제 코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main() {
    int a = 123;
    int *= &a;
    long c = 456;
    double d = 10.123;
 
    printf("%c\n"'y'); // y 
    printf("%d\n", a); // 123 
    printf("%o\n", a); // 173
    printf("%u\n", a); // 123
    printf("%x\n", a); // 7b
    printf("%e\n", d); // 1.012300e+01
    printf("%f\n", d); // 10.123000
    printf("%a\n", d); // 0x1.43ef9bd22d0e5p+3
    printf("%p\n", p); // 001FF8FC
    printf("%s\n""yeolco"); // yeolco
    printf("%lf\n", d); // 10.123000
 
    return 0;
}
cs


첫번째 인수인 형식 필드 문자는 생략 가능하며,

만약 첫번째 인수를 생략하지 않으면 두번째 인수는 반드시 형식에 맞는 인수를 사용해야 합니다.

\n은 개행(줄바꿈)을 의미합니다.


또한 첫번째 인수인 형식 필드 문자를 다양한 조합을 통해 사용할 수 있습니다.


% (공백) : 음수인 경우 - 부호를 출력

%+ : 양수일 경우 + 부호, 음수일 경우 - 부호 출력

%.(숫자) : 지정한 숫자만큼 소숫점 자리 출력

%(숫자) : 지정한 숫자만큼 폭을 지정하여 출력



예제 코드

1
2
3
4
5
6
7
#include <stdio.h>
 
int main() {
    double d = 3.14159;
 
    printf("%10.2lf", d);
}
cs


위 코드의 출력 결과는 다음과 같습니다.


      3.14 (왼쪽 공백 6칸)


%뒤 숫자 10은 왼쪽으로 부터 공백 10칸을 의미하며,

.2의 의미는 소수점 2자리 수까지(반올림하여) 출력한다는 의미입니다.


이상 'C 표준 출력 함수'에 대해 알아보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!

공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.





'C, C++' 카테고리의 다른 글

C언어 변수 이름이 숫자로 시작할 수 없는 이유  (0) 2018.11.13
C 정적(static) 변수  (0) 2018.10.29
C 변수 선언 및 키워드  (0) 2018.10.25
C 표준 입력 함수 scanf  (0) 2018.10.23
C++ 가상 함수(Virtual Function)  (8) 2018.10.19
C++ 연산자 오버로딩  (2) 2018.10.12
C++ 함수 오버로딩  (0) 2018.10.11
C/C++ 메모리 동적할당  (0) 2018.10.11

to Top