分享一个Go按行读取命令行输入的例子
日期: 2014-07-11 分类: 个人收藏 315次阅读
很多人在使用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) } } }
转载于:https://my.oschina.net/wuciyou/blog/289841
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐