分享一个Go按行读取命令行输入的例子

很多人在使用Go读取命令行输入的时候,对按行读取输入很困惑,因为fmt包里面的Scan,Scanf或者是Scanln方法好像都是无效的。如果输入有多个单词,并且中间用空格隔开的话就无法按照我们的想法,一行读取。这里分享一个按行读取输入的实现。
package main

import (

"bufio"
"fmt"
"os"
"strings"

)

func main() {

for {
    fmt.Print(">")
    cmdReader := bufio.NewReader(os.Stdin)
    if cmdStr, err := cmdReader.ReadString('\n'); err == nil {
        //这里把读取的数据后面的换行去掉,对于Mac是"\r",Linux下面
        //是"\n",Windows下面是"\r\n",所以为了支持多平台,直接用
        //"\r\n"作为过滤字符
        cmdStr = strings.Trim(cmdStr, "\r\n")
        fmt.Println(cmdStr)
    }
}

}

你可能感兴趣的:(分享一个Go按行读取命令行输入的例子)