標準入力/出力の使用

Go(Golang)における「標準入力/出力の使用」は、ユーザーとのやり取りや外部データの読み書きを行う際に非常に重要です。以下に、標準入力(stdin)、標準出力(stdout)、標準エラー出力(stderr)の基本的な使用方法について詳しく説明します。


1. 標準出力(fmtパッケージ)

標準出力は通常、コンソール画面にデータを表示するために使用されます。fmtパッケージを使って出力します。

go
package main import "fmt" func main() { fmt.Print("Hello, ") fmt.Println("World!") fmt.Printf("数値: %d\n", 42) }

主な関数

  • fmt.Print(...):改行なしで出力

  • fmt.Println(...):改行付きで出力

  • fmt.Printf(...):フォーマット付き出力


2. 標準入力(fmt.Scan / bufio.Scanner)

標準入力は、ユーザーからの入力を受け取るために使用します。

方法①:fmt.Scan / Scanln / Scanf

go
package main import "fmt" func main() { var name string fmt.Print("名前を入力してください: ") fmt.Scanln(&name) fmt.Println("こんにちは,", name) }
  • Scanln:スペースで区切られた入力を1行として読み取る

  • Scanf:フォーマット付きで読み取る(C言語のscanfに類似)


方法②:bufio.Scanner(複数行や空白を含む入力に有効)

go
package main import ( "bufio" "fmt" "os" ) func main() { scanner := bufio.NewScanner(os.Stdin) fmt.Print("文章を入力してください: ") if scanner.Scan() { text := scanner.Text() fmt.Println("入力された内容:", text) } }
  • scanner.Scan():次の入力があるかどうかを確認

  • scanner.Text():入力内容を文字列として取得


3. 標準エラー出力(os.Stderrとfmt.Fprintln)

エラーを標準出力ではなく標準エラー出力に出したい場合は以下のようにします。

go
package main import ( "fmt" "os" ) func main() { fmt.Fprintln(os.Stderr, "これはエラーメッセージです") }

まとめ

操作 方法例
標準出力 fmt.Print, fmt.Println, fmt.Printf
標準入力① fmt.Scan, fmt.Scanln, fmt.Scanf
標準入力② bufio.NewScanner(os.Stdin)
エラー出力 fmt.Fprintln(os.Stderr, ...)

Go言語では標準ライブラリで簡潔にI/O処理が行えるよう設計されています。用途に応じてfmtbufioを使い分けることで、柔軟な入力/出力処理が可能です。

生成日:2025/05/03