登录
首页 >  Golang >  Go问答

如何在 Go 中使用 fmt 包来扫描包含空格的字符串?

来源:stackoverflow

时间:2024-02-27 08:39:25 350浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《如何在 Go 中使用 fmt 包来扫描包含空格的字符串?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

使用go语言,要读取带空格的输入字符串,我必须使用

1
s, err := bufio.NewReader(os.Stdin).ReadString('\n')

有没有办法使用fmt.scanfmt.scanffmt.scanln()


正确答案


如果您正在构建 cli 工具,我强烈建议您查看 cobra。它是用纯 go (see dependencies) 编写的,并被多个知名项目使用。

或者,我编写了一个快速(粗略)示例来演示如何通过从 stdin 线性读取单个字节来使用 reader 接口获得更精细的控制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func byteByByte() [][]byte {
    reader := bufio.NewReader(os.Stdin)
    buffer, result := []byte{}, [][]byte{}
    for {
        c, err := reader.ReadByte()
        if err != nil {
            break
        }
        if c == byte(32) {
            result, buffer = append(result, buffer), []byte{}
            continue
        }
        buffer = append(buffer, c)
    }
    return result
}

这里我们暂时缓冲结果,直到达到一个空间,此时临时缓冲区将转储到更大的缓冲区中。

这是一个示例,旨在向您展示如何以更多控制/粒度使用阅读器界面,而不是作为一段逐字使用的代码。

今天关于《如何在 Go 中使用 fmt 包来扫描包含空格的字符串?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>