📜  如何在 Golang 中获取用户的输入?(1)

📅  最后修改于: 2023-12-03 15:38:16.131000             🧑  作者: Mango

如何在 Golang 中获取用户的输入?

当我们编写 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 包提供的函数,我们可以轻松地获取用户的输入数据。