여행을 개발하다

표준 입출력 함수(printf) 본문

BackEnd/C++

표준 입출력 함수(printf)

yhtragramming 2019. 5. 8. 12:39

안녕하세요!

 

오늘 포스팅 할 내용은

표준 입출력 함수인 'printf'입니다.

 

# 작업 전 포함해야 할 header : "<stdio.h>"


* 표준 입출력 함수란?

- 키보드나 모니터를 통해 데이터를 입력하거나 출력하는 기능을 갖고 있는 함수

 

 

C++에는 대표적으로 'printf' 함수가 있습니다.

python에서는 사용했던 'print'와 동일한 기능을 수행한다고 생각하시면 됩니다.

 

하지만 C계열의 언어는 python처럼 그렇게 간단하게 표현되지는 않으며,

서식이 반드시 지정되어야 한다는 번거로움이 있습니다.

 

1. printf 함수의 형식

printf("출력 양식", 인수 1, 인수 2, ....);

 

① printf 함수의 형식은 표시할 인수들의 출력 양식, 인수들 순으로 입력되어야 합니다.

 

② 모든 문자가 출력이 가능하며, 변환 문자와 제어 문자를 제외하고는 모니터 화면에 그대로 표시됩니다.

 

③ 또한, 인수와 변환 문자는 반드시 1:1로 대응되어야 하며, 인수와 변환 문자의 자료형도 반드시 일치해야 합니다. ex) printf("%d, %d", x, y) (O), printf("%d", x, y) (X)

 

④ 변환 문자와 제어 문자는 "출력 양식" 부분에서 지정됩니다.

2. 변환 문자의 종류

 

변환 문자

자료형

의미

%d

10진수

(decimal number)

부호 있는 10진수로 표현

%ld

부호 있는 long형 10진수로 표현

%u

부호 없는 10진수로 표현

%o

8진수

(octal number)

부호 있는 8진수로 표현

%lo

부호 있는 long형 8진수로 표현

%x

16진수

(hexadecimal)

부호 있는 16진수로 표현

%lx

부호 있는 long형 16진수로 표현

%f

실수 (float)

부호 있는 실수로 표현

%c

문자 (character)

하나의 문자로 표현

%s

문자열 (string)

여러 개의 문자로 표현

 

3. 제어 문자의 종류

제어 문자

의미

\b

커서를 한 칸 앞으로 이동한다.

\f

한 페이지 다음으로 이동한다.

\n

커서를 다음 줄의 처음으로 이동한다.

\r

커서를 그 줄의 맨 앞으로 이동한다.

\t

탭 문자 간격만큼 커서를 이동한다.

\v

커서를 수직으로 칸을 띄운다.

\a

bell 소리가 나게 한다.

\\, \', \"

\, ', " 문자 자체를 출력하려 할 경우에 사용한다.

 

4. printf 함수의 예제 (변환 문자 + 제어 문자)

예제를 통해 printf 함수의 사용법에 대해 알아보겠습니다.

먼저 메인 함수 안에 정수형 변수 x, 실수형 변수 y를 선언하고,

5번 라인부터 적혀 있는 printf 입출력 함수의 서식을 표에 해석해보도록 하겠습니다.

(참고로 '\'는 'backslash()'입니다)

행 번호

문자

해석

3

int x = 345;

정수형 변수 x를 선언하고, 값을 345로 초기화 시킨다.

4

float y = 34.564;

실수형 변수 y를 선언하고, 값을 34.564로 초기화 시킨다.

5

printf("%10d\n",x);

정수형 변수 x를 10자리에 맞추어 오른쪽으로,

'정수형'으로 한 줄(\n)을 띄어 출력한다.

6

printf("%-10d\n",x);

정수형 변수 x를 10자리로, 왼쪽(-)으로 맞추어,

'정수형'으로 한 줄(\n)을 띄어 출력한다.

7

printf("%010d\n",x);

정수형 변수 x를 10자리에 맞추어 오른쪽으로,

'정수형'으로, 공란은 0으로 메워 한 줄(\n)을 띄워 출력한다.

9

printf("%.2f\n",y);

실수형 변수 y를 소수점 이하 2자리로 한 줄(\n)을 띄어 출력한다.

10

printf("%-10.3f\n",y);

실수형 변수 y를 10자리에 맞추고, 왼쪽(-)으로 정렬하여,

소수점 이하 3자리로 한 줄(\n)을 띄어 출력한다.

출력 결과는 다음과 같습니다.

 

해석과 출력 결과를 비교해보면, 유의미한 규칙이 몇 개 보이는데요.

표현 인수에 따라 변환 문자의 입력 순서는 다음과 같이 달라진다는 사실을 알 수 있습니다.

 

① 표현할 인수가 정수인 경우, 변환 문자의 입력 순서

- printf("%-010d", x);

 

정렬

left<->, right<+>

빈자리 0으로 채우기

총 표현 자릿수

자료 형태

제어 문자

 

"%

+, -

0

10

d

n

"


② 표현할 인수가 실수(소수점)인 경우-

ex) printf("%-010.3f\n, y);

 

정렬

(l, r)

빈자리 0으로 채우기

총 표현 자릿수

소수점

소수점 이하 표현 자리 수

자료형

제어문자

 

"%

+, -

0

10

.

3

f

n

"

 


지금까지 C++ 언어의 대표 입출력함수인

'printf'에 대해 알아보았습니다 : )

'BackEnd > C++' 카테고리의 다른 글

제어문1. If  (0) 2019.05.08
연산자(Operater)  (0) 2019.05.08
변수(variable)  (0) 2019.05.07
C++ 언어의 기본 구조, 주석(Comment), 솔루션 빌드 및 실행  (0) 2019.05.07
Header, Heaer File(헤더 파일)  (0) 2019.05.07
Comments