printf() 플래그
- : 항목이 왼쪽 정렬로 출력된다. 즉 필드의 왼쪽 부터 출력이 시작된다. ex)%-20s
+ : 부호있는 수를 출력할 때, 양수이면 +, 음수이면 - 를 붙인다. ex)%+6.2f
스페이스 : 부호 있는 수를 출력 할 때, 양수이면 부호없이 스페이스를 하나 붙이고, 음수이면 -를 붙인다. + 플래그는 스페이스를 무시한다. ex) % 6.2f
# : 변환 지정에 대응하는 형식을 사용한다. %o의 경우에는 하나의 0을 앞에 붙인다. %x와 %X의 경우 0x 와 0X를 각각 붙인다. ex) %#o , %#8.0f %+#10.3E
0 : 필드 너비에서 남는 공간을 스페이스 대신 0으로 채운다. ex)%010d, %08.3f
printf()함수도 리턴값을 가진다.
1. 정보를 출력하는 것과 어떤값을 변수에 대입한다.
2. 스페이스와 눈에 보이지 않는 개행문자까지 카운트하여 출력된 모든 문자들의 개수를 반환한다.
scanf()에 대한 C 변환 지정자
%c : 입력을 문자로 해석한다.
%d : 입력을 10진 정수로 해석한다.
%e, %f, %g, %a : 입력을 부동소수점 수로 해석한다.
%E, %F, %G, %A : 입력을 부동소수점 수로 해석한다.
%i : 입력을 10진 정수로 해석한다.
%o : 입력을 8진 정수로 해석한다.
%s : 입력을 문자열로 해석한다. 다음 번 화이트 스페이스 앞까지의 입력
%u : 부호없는 10진 정수로 해석한다.
%p : 입력을 포인터(주소)로 해석한다.
%x, %X : 입력을 16진 정수로 해석한다.
scanf()에 대한 변환 변경자
* : 지정을 무시한다. scanf()가 그에 해당하는 입력을 건너뛴다. ex) "%*d"
자리수 : 최대 필드 너비. 입력이 최대 필드 너비에 도달하거나, 첫번쨰 화이트 스페이스를 만나면 중지된다. ex) " %10s"
hh : 하나의 정수를 signed char형 또는 unsigned char 형으로 읽는다. ex) " %hhd" "%hhu"
ll : 하나의 정수를 long long 형 또는 unsigned long long 형으로 읽는다. ex) "%lld", "%llu"
h,l,L :
%hd, %hi 는 short int 형 저장
%ho, %hx, %hu : unsigned int
%ld, %li 는 그값이 long형으로 저장
%lo, %lx, %lu는 그 값이 unsigned long
%le, %lf, %lg는 double 형 저장
%Le, %Lf, %Lg 는 long double로 저장
위와같은 변경자들이 없으면 d,i,o,x는 int형을 나타내고, e,f,g는 float 형을 나타낸다.
j : 정수형 지정자가 뒤에 붙으면 intmax_t형 또는 uintmax_t형 ex)"%jd", %ju"
z : 정수형 지정자가 뒤에 붙으면 sizeof가 리턴하는 데이터형 ex)"%zd", %zo"
t : 두 포인터간의 차이 ex)"%td", "%tx"
'Programming > C' 카테고리의 다른 글
프로그래밍 연습 3 (0) | 2019.05.06 |
---|---|
C언어 공부 8 (0) | 2019.05.06 |
C언어 공부 6 (0) | 2019.05.05 |
C언어 공부 5 (0) | 2019.04.28 |
프로그래밍 연습 2 (0) | 2019.04.28 |