いくつかのオプションがあります。このfileinput.input()
関数はファイル名もチェックsys.args[1:]
しますが、ここでは stdin からの読み取りに焦点を当てます。
を使用しScanner
ます。ドキュメントの例 ( http://play.golang.org/p/_Nar8-uBDs ):
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Println(scanner.Text()) // Println will add back the final '\n'
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "reading standard input:", err)
}
}
低レベルの代替手段はbufio.Reader
、そのReadString()
メソッド ( http://play.golang.org/p/h2sobrWNYd ) を使用することです。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
rbuf := bufio.NewReader(os.Stdin)
for {
line, err := rbuf.ReadString('\n')
fmt.Print(line)
if err != nil {
// line contains the last remaining characters or is empty
// it is only empty if '\n' was the last character in the input
break
}
}
}
最低レベルの代替手段については、 を参照してくださいReadLine()
。