コンソール入力
【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト
コンソール入力には、主にfmt.scan()、fmt.scanf()、スキャナー(NewScnner())など使われる。
◆fmt.scan()
基本的なキーボードからの入力には、fmt.scan()を使うことが出来ます
・書式
fmt.scan(&variable)
例文1--文字
// fmt.scan()
package main
import (
"fmt"
)
func main() {
var name string
fmt.Print("Name:")
fmt.Scan(&name)
fmt.Printf("こんにちは,%s!", name)
}
実行
PS D:\GO言語\サンプルプログラム\Go-3> go run コンソール.go
Name:かすみ
こんにちは,かすみ!
◆fmt.scanf()
書式を指定したキーボードからの入力いは、fmt.scanf()を使う
・書式
fmt.scanf(format,a,,,,interface{})
この関数は標準入力から読み込んだテキストをスキャンして、書式文字列formatに従って順に引数に格納します。
書式文字列は書式が入力に限定されることを除いて、fmt.printf()と同じである。
サンプルコード
// fmt.scanf()
package main
import (
"fmt"
)
func main() {
var n, m int
fmt.Printf("2つの整数を入力して下さい:")
fmt.Scanf("%d %d", &n, &m)
fmt.Printf("%dと%dの合計は%d\n", n, m, n+m)
}
実行
PS D:\GO言語\サンプルプログラム\Go-3> go run コンソール.go
2つの整数を入力して下さい:
PS D:\GO言語\サンプルプログラム\Go-3> go run コンソール.go
2つの整数を入力して下さい:12 23
12と23の合計は35
◆スキャナー
バッファー付きのキーボードからの文字列入力には、スキャナーを使うことが出来る。
bufioというパッケージにあるNewScanner()を使ってスキャナーと呼ぶオブジェクトを作成します。このスキャナーオブジェクトは、ファイル入力に使うことが出来ますが、ファイルの代わりにos.stdinを指定することで標準入力(キーボード)からの入力を受け取るオブジェクトとして作成することが出来ます。
サンプルコード
// scanner.go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var name string
fmt.Printf("名前を入力して下さい:")
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
name = scanner.Text()
fmt.Printf("nameは=%s\n", name)
}
実行
PS D:\GO言語\サンプルプログラム\Go-3> go run コンソール.go
名前を入力して下さい:
PS D:\GO言語\サンプルプログラム\Go-3> go run コンソール.go
名前を入力して下さい:花子
nameは=花子
※コメント投稿者のブログIDはブログ作成者のみに通知されます