请问高手,go如何读取键盘的输入

请问各位大神如何go读取键盘输入的的值,我自己找不到相关的内容解释

共 6 个回复


jimmykuu

fmt.Scanfmt.Scanffmt.Scanln

# 0

wxfbboy

谢谢站长耐心解答:)

# 1

jemygraw

package main

import (
    "fmt"
)

func scan_demo() {
    var apple_str, orange_str string
    fmt.Scan(&apple_str, &orange_str)
    fmt.Println(apple_str)
    fmt.Println(orange_str)
}
func scanf_demo() {
    var apple_count int
    var apple_name string
    var apple_price float64
    fmt.Scanf("%d %s %f", &apple_count, &apple_name, &apple_price)
    fmt.Println(apple_count)
    fmt.Println(apple_name)
    fmt.Println(apple_price)
}
func scanln_demo() {
    var app_line string
    fmt.Scanln(&app_line)
    fmt.Println(app_line)
}
func main() {
    //scan_demo()
    //scanf_demo()
    scanln_demo()
}
# 2

wxfbboy

@jemygraw 谢谢 有详细的代码段实例 可以学习了

# 3

kulle

我要输入的命令是变长度的, 例如输入ab, 有时要输入ab cd, 用Scanln 遇到空格就识别为下一次输入, 有什么办法解决呢

# 4

jemygraw

@kulle 用bufio

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