Printf 함수
ㆍ 특수문자 출력이 필요한 이유
특수문자는 독립된 문자 상수로서 존재가 가능하다. ex) char ch='\n';
컴파일러는 우리가 생각하는 것과 다르게 생각한다.
ex) printf("ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ"웃기지?"ㅋㅋㅋㅋㅋㅋㅋㅋ"); 라고 입력한다면 답은 무엇이겠는가?
우리가 생각하는 결과 : ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ"웃기지?"ㅋㅋㅋㅋㅋㅋㅋㅋ
컴파일러가 생각하는 결과 : Error!
이렇게 해서 우리는 컴파일러가 원하는대로 따라줘야한다. ㅠ
해결책 : printf("ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ\"웃기지?\"ㅋㅋㅋㅋㅋㅋㅋㅋ");
ㆍprintf 함수의 서식 지정 : printf의 f는 formatted(서식이 지정된...)를 의미한다.
=> 서식이 지정된 형태의 출력 (출력 양식이 만들어진 상태에서 출력을 진행한다.)
printf("인자1", 인자2, 인자3, ㆍㆍㆍ, 인자n); => printf 함수에 전달해야할 인자의 갯수는 총(n+1)개
ex) printf("%d", num1); // printf 함수에 전달해야할 총 인자의 갯수는?
ㆍ 정수의 출력을 위한 서식 문자 : %d(음의 정수 표현 가능), %u(양의 정수), %o(양의 8진수 정수), %x(양의 16진수 정수)
진수 형태에 맞게 출력하고 싶다면 #을 붙여라!
ex) %o = 7, %#o = 07
%x = d, %#x = 0xd
ㆍ 실수 출력을 위한 서식 문자 : %f, %e, %g
%f : 소수점 6자리 ex) 0.123400
%e : e표기법으로 출력 ex) 1.23.4568e-001 %E = E로 나옴
%g : 소수점 이하의 자리수 증가 -> e표기법으로 출력 ex) 0.00123, 123e-006 (0.00000123) %G = E로 나옴
* e 표기법 : 지수 형태의 출력을 표현 ex) 03.0000000001 => 1.0x10^-10
1.2x10^12 = 1.2e+12, 1.15x10^-12 = 1.15e-12, 1.7x10^-15 = 13.7e-15
ㆍ 문자열 출력 : %s (String)
ex) printf("%s", "AAA"); // 출력 결과 : AAA
ㆍ 필드 폭을 지정하여 정돈된 출력 보이기
서식 문자에 숫자를 붙이면 필드 폭 n칸 확보, 오른쪽 정렬
서식 문자에 -와 숫자를 붙이면 필드 폭 n칸 확보, 왼쪽 정렬
%(부호)(숫자)(d,s,c,ㆍㆍㆍ) => 필드 폭 확보 및 정렬
ex) printf("%-8s %14s %5d", "정렬", "확보", 1); // 출력 결과 : 정렬 확보 1