[차례]  [함수색인] Wel 도움말 문서 [이전]  [다음]
대분류: 내장함수
소분류: 표준 입출력 함수
printf() 작성일: 2001/08/26
수정일: 2002/07/05

1. 형식: result= printf(서식문자열, 인자2, ... , 인자N) 2. 기능: 표준 출력 장치(터미널의 화면)에 서식문자열의 형태로 인자2부터 인자N까지의 값을 출력한다. 3. 설명 (1) C언어의 printf()함수와 동일한 함수이며 서식문자열의 종류는 (3)과 같다. (2) 출력된 문자의 개수(byte 수)가 result에 돌려진다. (3) 서식(format)의 종류 ※ C언어와 다른점: 자료형이 맞지 않으면 형변환을 하며 형변환을 할수 없는 경우의 출력 결과는 알수 없는 값(쓰레기값)이 출력된다. %c - 문자 출력(1byte문자) -------------> 자료형이 맞지 않으면 형변환함 %d - 2byte 정수 출력(10진수) -----------> 자료형이 맞지 않으면 형변환함 %u - 2byte 부호없는 정수 출력(10진수) --> 자료형이 맞지 않으면 형변환함 %o - 2byte 정수를 8진수로 출력 ---------> 자료형이 맞지 않으면 형변환함 %x - 2byte 정수를 16진수로 출력 --------> 자료형이 맞지 않으면 형변환함 %X - %x와 같고 영문 대문자로 출력 ------> 자료형이 맞지 않으면 형변환함 %b - 2byte 정수를 2진수로 출력 ---------> 자료형이 맞지 않으면 형변환함 %ld - 4byte 정수 출력(10진수) ----------> 자료형이 맞지 않으면 형변환함 %lu - 4byte 부호없는 정수 출력(10진수) -> 자료형이 맞지 않으면 형변환함 %lo - 4byte 정수를 8진수로 출력 --------> 자료형이 맞지 않으면 형변환함 %lx - 4byte 정수를 16진수로 출력 -------> 자료형이 맞지 않으면 형변환함 %lX - %lx와 같고 영문은 대문자로 출력 --> 자료형이 맞지 않으면 형변환함 %lb - 4byte 정수를 2진수로 출력 --------> 자료형이 맞지 않으면 형변환함 %f - 실수 출력 -------------------------> 자료형이 맞지 않으면 형변환함 %e - 실수를 지수형식으로 출력 ----------> 자료형이 맞지 않으면 형변환함 %E - %e와 같고 영문은 대문자로 출력 ----> 자료형이 맞지 않으면 형변환함 %g - %f와 %e중에서 문자수가 작은 것을 선택적으로 출력 -------------------> 자료형이 맞지 않으면 형변환함 %G - %g와 같고 영문은 대문자로 출력 ----> 자료형이 맞지 않으면 형변환함 %s - 문자열을 출력 ---------------------> 자료형이 맞지 않으면 형변환함 %p - 포인터를 출력 ---------------------> 형변환하지 않음 %P - %p와 같고 영문은 대문자로 출력 ----> 형변환하지 않음 (4) 서식(format)의 형식 % [ - | + | # | 공백 | 0 ] [ 총자리수 | * ] [.자리수2 | *] 서식문자 ※ 위의 형식에서 '[ ]' 안의 내용은 '생략가능함'을 의미하고 ' | ' 기호는 '또는'을 의미한다. 그리고 '자리수2'는 %f %e일때는 '소수아래 정밀도', %s일때는 '출력할 문자열의 문자수', %d %u %ld %lu일때는 '수치 사이에 콤마를 출력할 단위수', %o %x %X %b일때는 '수치 사이에 공백을 출력할 단위수'를 의미한다. 또한 '서식문자'는 위 (3)항의 서식의 종류에서 영문 한자(c,d,u,o,...)를 의미한다. '%'다음의 '-'는 왼쪽정렬, '+'는 부호출력, '0'은 수치일때 출력될 수치보다 '총자리수'가 큰 경우 남은 자리를 '0'으로 채운다.('#'과 '공백'은 C언어의 printf를 참고) 4. 사용예 printf(" HELLO! "); printf("decimal=%d octal=%o hex=%x real=%f\n", 123, 123, 123, 123.4); printf(" (%.3ld)(%#o)(%#X)(%09.4b)\n", 1234567, 123, 123, 96); printf(" (%10.2f)(%10.1f)(%010.2f)(%-10.2f)\n", 5.67, 5.67, 5.67, 5.67); printf(" (%10.3e)(%-10.3e)(%10.3g)\n", 1.234567, 1.234567, 1.234567); printf(" (%s)(%10s)(%-10s)(%10.3s)\n","HELLO","HELLO","HELLO","HELLO"); printf(" (%c)(%5c)(%-5c)\n", 'A', 'B', 'C'); ------------------------------ [ 출력결과 ] ------------------------------ HELLO! decimal=123 octal=173 hex=7b real=123.400000 (1,234,567)(0173)(0X7B)(0110 0000) ( 5.67)( 5.7)(0000005.67)(5.67 ) ( 1.235e+00)(1.235e+00 )( 1.23) (HELLO)( HELLO)(HELLO )( HEL) (A)( B)(C )

Wel Version 1.0
[차례]  [함수색인] [이전]  [다음]