반응형
mysql 쪽을 좀 찾아보다가, 우연히 알게 된 사실이다.
http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html
이걸 보면, 예제에 이런 문장이 있다.
printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
지금까지 쓰면서도 몰랐던 거다. man printf 로 알게 된 거다.
------------------
The arguments must correspond properly (after type promotion) with the conversion specifier. By default, the arguments are used in the order given, where each '*' and each conversion specifier asks for the next argument (and it is an error if insufficiently many arguments are given). One can also specify explicitly which argument is taken, at each place where an argument is required, by writing "%m$" instead of '%' and "*m$" instead of '*', where the decimal integer m denotes the position in the argument list of the desired argument, indexed starting from 1. Thus,
printf("%*d", width, num);
printf("%2$*1$d", width, num);
요약 정리하면, printf에는 '', '' 라는 특수문자가 존재해서,
'*' -> 프린트 포멧 문자열에 동적 변수를 적용한다.
'$' -> 프린트 포멧 문자열 이후의 변수 중 임의의 변수를 적용할 수 있다.
예를 들어,
pritnf( " %0*d" , 5, 12 );
의 결과는 "00012" 가 되고( %05d 의 효과) ,
pritnf( " %4$d" , 5, 12, 34, 56 );
의 결과는 "56" 이 된다. ( 4번째 인자를 %d의 값으로 지정 .)
이상끝.
printf()
반응형
'프로그램 > mysql' 카테고리의 다른 글
Linux 에서 C 컴파일용 mysql library + header file 구하기. (0) | 2013.08.05 |
---|---|
Linux + C/C++ + Mysql 예제 (0) | 2013.07.31 |
MySql 로 접속할 때 "Authentication with old password no longer supported, use 4.1 style password" (2) | 2013.07.25 |
mysql 외부 접속이 안될때. (5) | 2013.07.24 |
mysql 에서는 alter 의 문법이 다르다. (0) | 2011.11.16 |