• 이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 5장 써머리입니다.
- 구조화된 입출력을 제공하는 패키지.
- 출력용 함수
- Print() : 함수 입력값을 출력 (개행 X)
- Println() : 입력값을 출력 하고 개행
- Printf() : 서식(format)에 맞도록 입력값을 출력
- 입력용 함수
- Scan(), Scanf(), Scanln() 함수로 입력
// 패키지 불러와서 적용 import "fmt" func main(){ a := 10 b := 20 var f float64 = 32799438743.8297 fmt.Print("a:",a,"b",b) fmt.Println("a:",a,"b:",b"f:",f) fmt.Printf("a:%d b:%d f:%f\n",a,b,f) } // 콘솔 출력 // a:10b:20a: 10 b: 20 f: 3.2799438743.8297e+10 // a: 10 b : 20 f:32799438743.829700 > // a:10b:20 : 개행과 공란이 없고, 다음 출력값(fmt.Println)과도 공란 없음. // a: 10 b: 20 f: 3.2799438743.8297e+10 출력 값 사이에 공란 삽입, // 출력이 끝나면 개행 (엔터와 같음) // a: 10 b : 20 f:32799438743.829700 : 서식에 맞춰서 입력값을 출력 // %d, %f 가 서식 문자. %d, %d, %f 순서에 따라 a,b,f 대입
- Printf() 함수의 형식
Printf(서식 문자열, 인수1, 인수2, ...)
👉 자주 사용하는 서식 지정자
- %d : 10진수 정수값 출력 (정수 타입만 가능)
- 최소 출력 너비 지정
서식문자의 %, 타입사이에 숫자 넣어 너비 지정.
%5d : 최소 5칸 사용하여 정숫값 출력- 공란채우기
너비 앞에 0을 붙여 빈자리를 0으로 채움.
%05d : 최소 5칸 사용, 공란은 0 채움- 왼쪽 정렬
마이너스 (-) 붙이면 왼쪽을 기준선으로 출력a := 123 b := 456 c := 123456789 fmt.Printf("%5d, %5d\n",a,b) // 최소 너비보다 짧은 값 너비 지정 fmt.Printf("%05d, %05d\n",a,b) // 최소 너비보다 짧은 값 0 채우기 fmt.Printf("%-5d, %-05d\n",a,b) // 최소 너비보다 짧은 값 왼쪽 정렬 fmt.Printf("%5d, %5d\n",c,c) // 최소 너비보다 긴 값 너비 지정 fmt.Printf("%05d, %05d\n",c,c) // 최소 너비보다 긴 값 0 채우기 fmt.Printf("%-5d, %-05d\n",c,c) // 최소 너비보다 긴 값 왼쪽 정렬 // 콘솔 123, 456 00123, 00456 123 , 456 // 최소 너비보다 긴 값은 지정한 최소 너비 무시됨 123456789, 123456789 123456789, 123456789 123456789, 123456789
- %f (%F) : 지수 형태가 아닌 실숫값 그대로 출력 (실수타입만 가능)
ex) 123.456
- 소수점 이하 자릿수 지정
%5.2f : 최소 너비 5칸, 소수점 이하 값 2개 출력
%5.2g : 최소 너비 5칸, 소수점 이하 포함 숫자 3개 표현
- \n : 줄바꿈
- \t : 탭 삽입
- \\: \자체를 출력
- \* : " " 를 출력. 문자열 내부 따옴표 삽입
fmt.Scan(&a, &b) // 포인터(&) 사용하여 주소를 입력