🤖

Goの標準入力

2021/09/18に公開

Goの標準入力

競技プログラミングやpaiza等で必要になるGoの標準入力をまとめました。

fmt.Scanf()

シンプルな方法。

package main
 
import (
	"fmt"
)
 
func main() {
	var a, b, c int
	var s string
	fmt.Scanf("%d", &a)
	fmt.Scanf("%d %d", &b, &c)
	fmt.Scanf("%s", &s)
	fmt.Printf("%d %s\n", a+b+c, s)
}

入力

1 2 3
sampleMoji

出力

6 sampleMoji

スライスに格納してみる。

nil

入力

nil

出力

nil

bufioのscannerを使う方法

package main
import (
    "fmt"
    "bufio"
    "os"
    )
func main(){
    var sc = bufio.NewScanner(os.Stdin)
    sc.Scan()
    a := sc.Text()
    sc.Scan()
    b := sc.Text()
    
    fmt.Println(a+";"+b)
}

入力

alice
bob

出力

alice;bob

例2)

package main
import "fmt"
import "bufio"
import "os"
import "strconv"
import "strings"
func main() {
	sc := bufio.NewScanner(os.Stdin)

	sc.Scan()
	var n, _ = strconv.Atoi(sc.Text())
	for i := 0; i < n; i++ {
		sc.Scan()
		var s = strings.Split(sc.Text(), " ")
		fmt.Println("hello = " + s[0] + " , world = " + s[1])
	}
}

※随時更新

Discussion