표준 입출력(Standard Input/Output)
표준 출력 함수
go 언어에서는 fmt 패키지에서 표준 출력함수를지원한다.
print() | 함수 입력값들을 출력합니다. |
println() | 함수 입력값들을 출력하고 개행합니다.(new line) |
printf() | 서식(format)에 맞게 함수 입력값들을 출력합니다. |
ex5.2.go
package main
import "fmt"
func main() {
var a int = 10
var b int = 20
var f float64 = 32323.123123000001
fmt.Print("a : ", a, ",b: ", b, ",f : ", f)
fmt.Println("a : ", a, ",b : ", b, ",f : ", f)
fmt.Printf("a: %d, b: %d, f:%f \n", a, b, f)
}
표준 입력 함수
go 언어에서는 fmt 패키지에서 표준 입력함수를지원한다.
Scan() | 표준 입력에서 값을 입력받습니다. |
Scanf() | 표준 입력에서 서식 형태로 값을 입력받습니다. |
Scanln() | 표준 입력에서 한 줄을 읽어서 값을 입력받습니다. |
ex5.3.go
package main
import "fmt"
func main() {
var a int
var b int
n, err := fmt.Scanln(&a, &b)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(n, a, b)
}
}
fmt.Scanln/Scanf/Scan 함수의 경우, n과 err 값을 같이 가지고 있다.
오류 발생시 err 값이 존재하게 된다.
실행결과는 아래와 같다.
입력 버퍼(Input Buffer)
표준입력/표준출력은 Bit Stream의 형식으로 출력되며 0,1로 진행이 된다.
Bit stream 형식으로 입력되는 값이 저장 되는 공간을 버퍼라고 한다.
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
stdin := bufio.NewReader(os.Stdin)
//os package 내의 standard input
var a int
var b int
n, err := fmt.Scanln(&a, &b)
if err != nil {
fmt.Println(err)
stdin.ReadString('\n') //표준 입력버퍼에서 '\n' 문자가 나올때까지 읽기 - 버퍼를 끝까지 읽어 비운다
} else {
fmt.Println(n, a, b)
}
n, err = fmt.Scanln(&a, &b)
if err != nil {
fmt.Println(err)
stdin.ReadString('\n') //표준 입력버퍼에서 '\n' 문자가 나올때까지 읽기 - 버퍼를 끝까지 읽어 비운다
} else {
fmt.Println(a, b)
}
}
참고
Tucker의 Go언어 프로그래밍 - Go가 온당 5장
https://www.youtube.com/watch?v=g4PyJ10CSr0&list=PLy-g2fnSzUTBHwuXkWQ834QHDZwLx6v6j
'Programming Language > go' 카테고리의 다른 글
Go 언어 프로그래밍 - 함수와 상수 (0) | 2021.07.07 |
---|---|
Go 언어 프로그래밍 - 슬라이스(Slice) (0) | 2021.07.05 |
Go 언어 프로그래밍 - 연산자 (0) | 2021.07.05 |
Go 언어 프로그래밍 - 변수 (0) | 2021.07.05 |
Go 언어 프로그래밍 - 개요 및 환경설정(윈도우즈편) (0) | 2021.07.03 |