让用户输入数据,完成项目交互。
//例子
package main
import "fmt"
func main() {
var name string
fmt.Print("请输入用户名:")
fmt.Scan(&name) //当使用Scan时,会提示用户输入
fmt.Printf(name)
}
//执行效果如下
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名:na
na
Process finished with exit code 0
package main
import "fmt"
func main() {
var name string
var age int
fmt.Println("请输入用户名:") //用户输完之后会得到两个值:count,用户输入了几个值;err,用户输入错误则是错误信息
count,err := fmt.Scan(&name,&age)
fmt.Println(count,err)
fmt.Println(name,age)
}
//
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名:
wang 26
2 <nil>
wang 26
Process finished with exit code 0
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名:
wang 26
2 <nil>
wang 26
Process finished with exit code 0
package main
import "fmt"
func main() {
var name string
var age int
fmt.Println("请输入用户名:")
count,err := fmt.Scan(&name,&age)
fmt.Println(count,err)
fmt.Println(name,age)
}
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名:
wang kk
1 expected integer //错误信息
wang 0
Process finished with exit code 0
package main
import "fmt"
func main() {
var name string
var age int
fmt.Println("请输入用户名:")
_, err := fmt.Scan(&name, &age)
if err != nil { //如果有错误
fmt.Println("用户输入数据错误",err)
} else { //否则没有错误的话
fmt.Println(name, age)
}
}
//执行正确效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名:
wang 18
wang 18
Process finished with exit code 0
//执行错误效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名:
wang kk
用户输入数据错误 expected integer
Process finished with exit code 0
Scan如果要求输入2个值,没输入完的话就会一直等待。Scanln等待回车。
package main
import "fmt"
func main() {
var name string
fmt.Print("请输入用户名: ")
fmt.Scanf("%s", &name) //第一个写占位符
fmt.Println(name)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名: wang
wang
Process finished with exit code 0
package main
import "fmt"
func main() {
var name string
fmt.Print("请输入用户名: ")
fmt.Scanf("我叫%s", &name)
fmt.Println(name)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名: 我叫wang
wang
Process finished with exit code 0
package main
import "fmt"
func main() {
var name string
fmt.Print("请输入用户名: ")
fmt.Scanf("myNameIs%smyAgeIs18", &name)
fmt.Println(name)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名: myNameIswangmyAgeIs18
wangmyAgeIs18 //%把后面内容也匹配了。加上空格可不做匹配。
Process finished with exit code 0
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("请输入用户名: ")
fmt.Scanf("myNameIs%s myAgeIs%d 岁", &name,&age)
fmt.Println(name,age)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入用户名: myNameIswang myAgeIs26 岁 //提取2个值
wang 26
Process finished with exit code 0
package main
import "fmt"
func main() {
var message string
fmt.Print("请输入信息: ")
fmt.Scanln(&message)
fmt.Println(message)
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
请输入信息: 我就去睡觉啦 哇安 //带空格后面没显示
我就去睡觉啦
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
//line,从stdin中读取一行的数据(字节集合-->转化为字符串)
//reader默认一次能读取4096个字节
line, _, _ := reader.ReadLine()
data := string(line)
fmt.Println(data)
}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
sjsj sjsjjsjalla //读取一整行
sjsj sjsjjsjalla
Process finished with exit code 0
0 Comments