2016-04-11 9 views
0

私は「BUFIO」パッケージを使用し、標準コードだけのようなものです:私はプログラムを実行するとscanner.scan()for-loopから壊す方法は?

input := bufio.NewScanner(os.Stdin) 
for input.Scan() { 
    // xxxxx 
} 

は、forループどんなI入力を停止することはできません。私は改行、スペース、ctrl-d、ctrl-zを試しました。文書によると、空白の改行はプログラムを停止できるはずです。

プログラムはWindows 7 CMD環境、またはmingw-bashで実行されています。

ありがとうございました。

+0

スキャン()は、入力の終了又はエラー –

+0

https://golang.org/pkg/bufio/#Scanner.Scan –

+0

それは重複だ@iczaに同意に達することによってのいずれかで停止します。ちなみに、空白の改行で止めることになっている文書はどんなものなのでしょうか? –

答えて

2

特定の文字列を信号として入力して、ループを停止させることができます。以下の例では、「quit」と入力すると、ループが壊れます。

package main 

import (
    "bufio" 
    "os" 
) 

func main() { 
    input := bufio.NewScanner(os.Stdin) 
    for input.Scan() { 
     indata := input.Text() 
     if indata == "quit" { 
      break 
     } 
    } 
} 
+1

答えをありがとう。 –

関連する問題