본문 바로가기
Go

표준 입출력 서식(Format) 문자

by TheWhisperOfLeaves 2022. 10. 24.

표준 입출력에서의 서식 문자

GO에서 표준 입출력 기능은 기본 패키지인 fmt 패키지에서 제공하고 있다.
그 중 서식 문자열을 사용하는 함수들(Printf(), Scanf() 등)이 있는데 이 함수들을 사용할 때 작성하는 format을 정리해보았다.

타입별 포맷

General

구분 설명
%v 데이터 타입에 맞춰서 기본 형태로 출력
%#v 값의 구문 표현을 출력
예)[]int{1, 2, 3}은 []int{1, 2, 3} 그대로 출력
%T 데이터 타입을 출력
%% 아무 값도 출력하지 않는다. % 문자를 그대로 출력

Boolean

구분 설명
%t boolean을 true/false로 출력

Integer

구분 설명
%b 2진수로 출력
%c 유니코드 문자를 출력
%d 10진수로 출력
%o 8진수로 출력
%O 접두사에 8진수임을 표시하는 0o를 붙여서 8진수로 출력
%q 작은 따옴표에 묶인 문자 리터럴을 문자열 그대로 출력
예) '😀'은 작은 따옴표를 포함하여 '😀'로 출력
%x 16진수로 출력. 10 이상 값을 a-f 소문자로 표시
%X 16진수로 출력. 10 이상 값을 A-F 대문자로 표시
%U 유니코드 형식으로 출력
예) "한"이라는 문자는 U+D55C로 출력

Floating-point and complex constituents

구분 설명
%b 지수가 2의 거듭제곱인 소수점이 없는 과학적 표기법으로 출력
예) -123456p-78
%e 지수 표기법으로 출력(소문자 출력)
예) -1.234456e+78
%E 지수 표기법으로 출력(대문자 출력)
예) -1.234456E+78
%f
%F
지수 형태가 아닌 소수점 형식으로 출력
예) 123.456
%g 큰 지수의 경우 %e로 출력하고, 그렇지 않으면 %f로 출력
%G 큰 지수의 경우 %E로 출력하고, 그렇지 않으면 %F로 출력
%x 16진수로 출력(with decimal power of two exponent)
예) -0x1.23abcp+20
%X 16진수로 출력(대문자 사용)
예) -0X1.23ABCP+20

String and slice of bytes (treated equivalently with these verbs)

구분 설명
%s 문자열을 출력
%q 큰 따옴표에 묶인 문자 리터럴을 문자열 그대로 출력
예) "Hello"는 큰 따옴표를 포함하여 "Hello"로 출력
%x 16진수로 출력(영문은 소문자 사용)
%X 16진수로 출력(영문은 대문자 사용)

Slice

구분 설명
%p 0번째 요소의 주소 값을 출력. 선행에 0x 표시

Pointer

구분 설명
%p 메모리 주소값을 출력. 선행에 0x 표시

댓글