讀取輸入 - skynocover/Wiki-for-GoLang GitHub Wiki

讀取輸入

使用bufio建立讀取器

import (
     "fmt"
     "bufio"
     "os"
)
var (
	inputReader *bufio.Reader //inputReader 是一个指向 bufio.Reader 的指针。
	input       string
	err         error
)

func main() {
	inputReader = bufio.NewReader(os.Stdin) //創件讀取器
	fmt.Printf("Please enter some input: ")
	input, err = inputReader.ReadString('a') //讀到指定文字後把包含指定文字的字放入到緩衝區
	if err == nil {
		fmt.Printf("The input was: %s", input)
	}
}

input dgsdfga1123 output dgsdfga

也可以事先建立輸入條件

var (
	String string
	Number int
	Input  string
)

func main() {
	f := bufio.NewReader(os.Stdin)
	
	     for {
	         fmt.Print("请输入一些字符串>")
			 Input,_ = f.ReadString('\n') //定義換行為一次輸入的結尾
	         if len(Input) == 1 {
	             continue //如果沒有輸入則跳下一次循環
	         }
	         fmt.Printf("您输入的是:%s",Input)
	         fmt.Sscan(Input,&String,&Number)
	         if String == "stop" {
	             break
	         }
	         fmt.Printf("第一個參數是%v,第二個參數是%v\n",String,Number)
		 }	 
	
}

input afsd 1321
output 第一個參數是afsd,第二個參數是1321
input af sf1232
output 第一個參數是af,第二個參數是1321

  • 只有當第一個輸入是string第二個是int時才會將緩存修改