[Tucker의 Go 언어 프로그래밍] 05장 fmt 패키지를 이용한 텍스트 입출력

Coen·2023년 9월 26일
1

tucker-go

목록 보기
2/18
post-thumbnail

이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 05장 써머리입니다.

05 fmt 패키지를 이용한 텍스트 입출력

5.1 표준 입출력

5.1.1 fmt 패키지

Go 에서는 fmt 패키지를 사용해 표준 입출력 처리를 한다.

  • fmt패키지는 3가지 표준 출력용 함수를 제공한다.
함수명기능
Print()입력값 출력
Println()입력값 출력 후 개행
Printf()format에 맞추어 입력값 출력

5.1.2 서식 문자

  • Printf() 함수는 다음과 같은 형식으로 사용한다.
    - Printf(서식문자열, 인수1, 인수2, ...)
구분설명
%v데이터 타입에 맞춰 기본 형태로 출력한다(개인적으로 로그찍을때 많이 사용중)
%T데이터 타입 출력(개인적으로 가끔 로그찍을때 사용)
%t불리언타입
%d10진수 정수
%b2진수
%c유니코드
%o8진수
%O8진수(Oo prefix)
%x16진수(0-9a-f)
%X16진수(0-9A-F)
%e %E지수 형태로 실수 출력(ex -1.234456e+78)
%f %F지수 형태가 아닌 실수 출력(ex 123.456)
%g %G값이 큰 실수값은 지수형태(%e)로 출력, 작은 실수는 그대로(%f) 출력
%s문자열 출력
%q특수문자 기능 무시하고 출력
%p주소값 출력

5.1.3 최소 출력 너비 지정(일반적으로 사용할 일이 없을듯)

  • 최소 출력 너비 지정
    - 서식 문자의 %와 타입을 나타내는 문자 사이에 숫자를 넣어 너비를 지정할 수 있다.
    - %5d : 최소 5칸을 사용해 정수값 출력
  • 공란 채우기 : 너비 앞에 0을 붙이면 빈자리를 0으로 채운다(0만 가능).
    - %05d : 최소 5칸을 사용, 우정렬, 빈칸에 0을 채운다
  • 왼쪽 정렬하기
    - %-05d : 최소 5칸을 사용, 좌정렬, 빈칸채우기 없음(우측은 0이 들어가면 숫자가 달라져서 그렇단다)

5.1.4 실수 소수점 이하 자릿수

  • %f : 실수 출력
    - %5.2f : 최소너비 5칸, 소수점 이하 2개
  • %g : 실수를 정수부와 소수점 이하 숫자를 포함해 출력 숫자 제한
    - %5.3g : 기본 숫자길이 6, 최소너비 5칸, 소수점 이하 포함해 총 숫자 3개로 표현

5.1.5 특수문자

\n줄바꿈
\n
\\\자체를 출력
\"" 출력

5.2 표준 입력

함수기능
Scan()표준 입력에서 값을 입력 받음
Scanf()표준 입력에서 서식 형태로 값을 입력 받음
Scanln()표준 입력에서 한 줄을 읽음

5.2.2 Scan()

package main

import "fmt"

func main() {
	var a int
	var b int

	if n, err := fmt.Scan(&a, &b); err != nil {
		fmt.Println(n, err)
	} else {
		fmt.Println(n, a, b)
	}
}

5.2.3 Scanf()

  • 백준에서 말고는 쓸일 없을것같다
package main

import "fmt"

func main() {
	var a int
	var b int

	if n, err := fmt.Scanf("%d %d\n", &a, &b); err != nil {
		fmt.Println(n, err)
	} else {
		fmt.Println(n, a, b)
	}
}

5.2.4 Scanln()

  • 마지막 입력값 이후 반드시 enter로 입력 종료해야함!
package main

import "fmt"

func main() {
	var a int
	var b int

	if n, err := fmt.Scanln(&a, &b); err != nil {
		fmt.Println(n, err)
	} else {
		fmt.Println(n, a, b)
	}
}

5.3 키보드 입력과 Scan() 함수의 동작 원리

핵심 요약

  1. fmt 패키지를 사용하여 표준 입출력을 할 수 있다.
  2. 표준 출력 함수로 Print() Printf() Println() 이 있다.
  3. 서식 문자 %v를 사용하면 모든 타입의 기본 서식으로 출력
  4. 표준 입력 함수로 Scan() Scanf() Scanln()이 있다.
  5. 입력받을 때 에러가 발생하면 표준 스트림을 지우자(책 5.3 참고)
profile
백엔드 프로그래머

0개의 댓글