Loading... # 输出 输出分为两类: - 内置函数(因为官方说不保证以后的版本也会有下面的函数,所以不推荐使用) - print - println - fmt包(推荐) - fmt.Print - fmt.Println - fmt.Printf # 输入 让用户输入数据,完成项目交互。 * fmt.Scan * fmt.Scanln * fmt.Scanf ```go package main import "fmt" func main() { // 示例1:fmt.Scan /* var name string fmt.Println("请输入用户名:") fmt.Scan(&name) fmt.Printf(name) */ // 示例2:fmt.Scan var name string var age int fmt.Println("请输入用户名:") // 当使用Scan时,会提示用户输入 // 用户输入完成之后,会得到两个值:count,用户输入了几个值;err,用输入错误则是错误信息 _, err := fmt.Scan(&name, &age) if err == nil { fmt.Println(name, age) } else { fmt.Println("用户输入数据错误", err) } // 特别说明:fmt.Scan 要求输入两个值,必须输入两个,否则他会一直等待。 } ``` ```go package main import "fmt" func main() { // 示例1:fmt.Scanln /* var name string fmt.Print("请输入用户名:") fmt.Scanln(&name) fmt.Printf(name) */ // 示例2:fmt.Scanln var name string var age int fmt.Print("请输入用户名:") // 当使用Scanln时,会提示用户输入 // 用户输入完成之后,会得到两个值:count,用户输入了几个值;err,用输入错误则是错误信息 count, err := fmt.Scanln(&name, &age) fmt.Println(count, err) fmt.Println(name, age) // 特别说明:fmt.Scanln 等待回车。 } ``` ```go package main import "fmt" func main() { var name string var age int fmt.Print("请输入用户名:") // 解析用户输入的我叫liaokong今年18岁中的信息并赋值 _, _ = fmt.Scanf("我叫%s 今年%d 岁", &name, &age) fmt.Println(name, age) } ``` 因为fmt的输入都是以空格来划分的,所以如果输入的信息中带有空格,则会导致获取不全,那么可以使用bufio模块来获取 ```go package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) // line,从stdin中读取一行的数据(字节集合 -> 转化成为字符串) // reader默认一次能4096个字节(4096/3) // 1. 一次性读完,isPrefix=false // 2. 先读一部分,isPrefix=true,再去读取isPrefix=false line, _, _ := reader.ReadLine() data := string(line) fmt.Println(data) } ``` # 注释 * 单行注释, // * 多行注释, /* */ Last modification:February 28th, 2021 at 07:38 pm © 允许规范转载 Support If you think my article is useful to you, please feel free to appreciate ×Close Appreciate the author Sweeping payments