bufio.Readerで読み込む ReadString 引数にファイルが指定されていれば,ファイルをオープンして1行ずつ読み込みます. 引数が指定されていなければ,標準入力から1行ずつ読み込みます. 追記:ReadString('\n')で読み込むとWindowsの場合\rが残ってしまうのでReadLineの方がいいとのコメントいただきましたので,ReadLine使った版も載せておきました. os.EOFでなくてio.EOFなのがはまりどころでした. Readerはファイルをクローズすれば閉じられるみたいです. package main import ( "bufio" "fmt" "io" "os" ) func main() { var fp *os.File var err error if len(os.Args) < 2 { fp = os.Stdin } else { fmt