int printf(const char *format, ...)
const char *
...
: 가변인자. printf는 매개변수의 개수가 정해지지 않는다. 즉 여러개의 인자를 넣어도 함수가 작동한다.int
다 ❗️❗️❗️ printf의 첫번째 인자: 어떤 형태로 출력할것인지 표현함.
예시) %d, %s, %c
(정수, 문자열, 문자.. )
printf 두번째 인자: 출력할 데이터들이 옴.
printf 함수 원리
int main(void)
{
int re;
re = printf("hi%d\n", 123); // ==> hi123
printf("re: %d \n", re); // ==> re: 6
return (0);
}
실행 결과
hi123
re: 6
hi123
[개행문자] 를 출력한 뒤에 반환값 6
을 다시 출력 하고 있다. - printf 함수는 출력한 문자의 개수를 반환하는데 공백이나 탭, 개행문자(엔터)도 하나의 문자로 취급한다.Write a library that contains ft_printf, a function that will mimic the real printf.
int ft_printf(const char*, ...)
// 다양한 포멧을 지정하여 출력
#include <stdio.h>
int main(void)
{
printf("============cspdiuxX퍼센트=========\n");
printf("1.c 문자 출력 : %c\n", 'a');
printf("2.s 문자열 출력: %s\n", "Hello World");
printf("3.p 메모리 주소 출력: %p\n", "Hi");
printf("4.d 십진수로 출력: %d\n", 123);
printf("5.i 부호있는 십진수로 출력: %i\n", 123);
printf("6.u 부호없는 십진수로 출력: %u\n", 123);
printf("7.x 부호없는 16진수로 출력(소문자): %x\n",123);
printf("8.X 부호없는 16진수로 출력(대문자): %X\n", 123);
printf("9.퍼센트 문자 출력: %%\n");
return (0);
}
============cspdiuxX퍼센트=========
1.c 문자 출력 : a
2.s 문자열 출력: Hello World
3.p 메모리 주소 출력: 0x10a925eb9
4.d 십진수로 출력: 123
5.i 부호있는 십진수로 출력: 123
6.u 부호없는 십진수로 출력: 123
7.x 부호없는 16진수로 출력(소문자): 7b
8.X 부호없는 16진수로 출력(대문자): 7B
9.퍼센트 문자 출력: %
16진수(16진법)이란?
16진법이란, 0~9 까지의 10개의 숫자를 사용하고 남는 자리는 A~F 까지 6개의 문자를 사용해서 수를 표현한다.
Using 0
will force the number to be padded with 0s. This only really matters if you use the width settin to ask for minimal width for your number.
printf( "%05d\n", 10 );
출력결과 : 00010
출처 :
1. printf 함수의 기능
https://ehpub.co.kr/24-printf-%ED%95%A8%EC%88%98/
2. 16진수
https://itbeginner2020.tistory.com/17
3. Printf definition
https://www.cypress.com/file/54441/download
https://www.cprogramming.com/tutorial/printf-format-strings.html