Printf()
Stack |
지역변수 |
Heap |
동적활당 |
Data |
정적영영 |
code |
text |
" 의 사용 목적
- 메모리 영역중 data영역에 주입
- '\0' null 문자를 text 에 삽입
Printf 함수
- Print formatting 서식화된 출력이란 뜻
Int printf(const char *format [,argument, … ] );
- 큰 따옴표("")안에 있는 일정한 형식의 문장을 출력해주는 함수
Escape Sequence
의미를 가지는 특수한 문자들을 위해 사용하는 제어문자
문자열 |
command |
\n |
New line |
새로운줄,줄바꿈 |
\b |
Back space |
앞으로 한 블럭 이동 |
\r |
Carriage return |
줄의 맨 처음으로 이동 |
\t |
Horizontal tab |
Tab 만큼 이동 |
\a |
Alert |
비프음 출력 |
\\ |
\ 문자 출력 |
\" |
" 문자 출력 |
\0 |
Null 문자 |
\x |
16진수를 문자로 출력 |
\n \b \r \t |
cursor 제어 |
Ex)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include<stdio.h> void main(){ printf("새로운 줄 바꿈 \n"); printf("앞으로 한 블럭 이동~\ㅠ!\n"); printf("Tab\t만큼 이동\n"); printf("Two 줄의 맨 처음으로 이동\t0ne\n"); printf(" \\문자\"문자출력\n"); printf("\0 Null 문자"); printf("\x64 16진수\n"); } | cs |
서식 문자열(%)
문자열을 조립하는 형식
뒤에 오는 인수들을 앞의 서식과 1대 1로 대입하여 출력한다.
서식에 따라 출력 형태가 달라진다.
Printf("%c 의 %s는 16진수로 표현하면 %x 이다.","A","아스키코드",'A');
=>
A의 아스키코드는 16진수로 표현하면 A이다.
서식의 종류
종류 |
서식 |
설명 |
|
정수형 |
%d |
Decimal |
10진 정수로 출력 |
|
%o |
Octal |
8진 정수로 출력 |
|
%x |
Hexadecimal |
16진 정수로 출력 |
문자형 |
%c |
Charater |
한 개의 문자를 출력 |
|
%s |
String |
문자열을 출력 |
실수형 |
%f |
Float |
실수로 출력 |
%% |
|
|
%문자 출력 |
10010101
%d 로 가져올때는 첫번째 비트를 부호비트로 사용
%f 로 가져올때는 최상의 7비트를 소숫점의 자리로 사용
error시 형변환 실패값이 나옴
서식을 이용한 정렬
동일한 값을 다양한 형태로 출력가능하며 정렬할때 주로 사용
정수 또는 문자열
%[-][0][전체 자리 수][ | ]d or s
실수
%[-][0][전체 자리 수 ][소수점 이하 자리 수 ][ | ] f
서식 |
의미 |
- |
왼쪽으로 정렬 |
0 |
남은 공간을 0 으로 채움 |
전체 자리 수 |
출력할 공간을 확보 |
. |
소수점 이하의 자릿수 |
ㅣ |
대응하는 인수를 Long형으로 출력 |
Ex)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<stdio.h> void a(){ printf("▥▥[%d]▥▥\n",49); printf("▥▥[%8d]▥▥\n",49); printf("▥▥[%-8d]▥▥\n",49); printf("▥▥[%08d]▥▥\n",49); printf("▥▥[%f]▥▥\n",3.141592); printf("▥▥[%.2f]▥▥\n",3.141592); printf("▥▥[%8.f]▥▥\n",3.141592); printf("▥▥[%-8.2f]▥▥\n",3.141592); printf("▥▥[%08.2f]▥▥\n",3.141592); } | cs |