📅  最后修改于: 2023-12-03 15:38:16.131000             🧑  作者: Mango
当我们编写 Golang 应用程序时,通常需要获取用户的输入。输入可以是来自终端的用户输入,也可以是从文件中读取的数据。本文将介绍如何在 Golang 中获取用户的输入。
在 Golang 中,可以使用 bufio
包中的 NewScanner()
函数从标准输入流中获取用户输入。以下是一个示例:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Print("请输入一个字符串:")
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
input := scanner.Text()
fmt.Println("你输入的字符串是:", input)
}
上述程序先输出一条提示信息,然后使用 bufio.NewScanner(os.Stdin)
创建一个 Scanner
对象,读取来自标准输入流的用户输入。该对象的 Scan()
方法每次从输入流中读取一行,Text()
方法将该行内容以字符串形式返回。最后程序将用户输入输出到控制台。
另一种从控制台获取用户输入的方式是使用 fmt
包中的 Scan()
和 Scanln()
函数。以下是一个示例:
package main
import "fmt"
func main() {
var input string
fmt.Print("请输入一个字符串:")
fmt.Scanln(&input)
fmt.Println("你输入的字符串是:", input)
}
在上述程序中,我们首先定义一个变量 input
,然后使用 fmt.Scanln(&input)
函数从控制台获取用户输入,并将输入的内容存储在 input
变量中。最后将用户输入输出到控制台。
除了从终端获取用户输入之外,我们还可以从文件中获取数据。Golang 中可以使用 os
包中的 Open()
和 Close()
函数打开和关闭文件,bufio
包中的 NewScanner()
函数读取文件内容。以下是一个示例:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Open("input.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}
上述程序中,我们打开名为 input.txt 的文件,并使用 bufio.NewScanner(file)
函数从文件中读取内容。scanner.Scan()
方法每次从文件中读取一行,Text()
方法将该行内容以字符串形式返回。最后程序输出文件的所有内容。
以上是在 Golang 中获取用户输入的几种方式。无论是从终端获取用户输入还是从文件中读取数据,通过 bufio
包和 os
包提供的函数,我们可以轻松地获取用户的输入数据。