728x90

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"

728x90

'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

+ Recent posts