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

soso·2023년 9월 25일
0

묘공노트

목록 보기
1/13
post-custom-banner

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


5-1. 표준 입출력

  • 운영체제가 제공하는 표준입출력 스트림을 사용하면 프로그램 내부에서 입출력을 간편하게 처리 가능
  • fmt패키지를 이용하여 표준 입출력을 처리

📌 fmt패키지

  • 구조화된 입출력을 제공하는 패키지.
  • 출력용 함수
    • 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 : 탭 삽입
  • \\: \자체를 출력
  • \* : " " 를 출력. 문자열 내부 따옴표 삽입

5-2. 표준입력

  • 표준입력장치에서 데이터를 얻어온다.기본 표준입력장치는 키보드.
    • Scan() : 표준입력에서 값을 입력받는다
      - 값을 채워넣을 변수들의 메모리 주소를 인수로 받는다.
      여러값을 받을 때는 변수 사이 공란으로 구분
      (엔터키도 공란으로 인식)
      fmt.Scan(&a, &b) // 포인터(&) 사용하여 주소를 입력
    • Scanf() : 표준입력에서 서식 형태로 값을 입력받는다
    • Scanln() : 표준입력에서 한 줄을 읽어서 값을 입력 받는다.
post-custom-banner

0개의 댓글