string - 如何使用 fmt.scanln 从以空格分隔的字符串中读取

标签 string input go

想要“30 of month”却得到“30”

package main

import "fmt"

func main() {
    var s string
    fmt.Scanln(&s)
    fmt.Println(s)
    return
}

$ go run test.go
31 of month
31

Scanln is similar to Scan, but stops scanning at a newline and after the final item there must be a newline or EOF.

最佳答案

fmt Scan 系列扫描以空格分隔的标记。

package main

import (
    "fmt"
)

func main() {
    var s1 string
    var s2 string
    fmt.Scanln(&s1,&s2)
    fmt.Println(s1)
    fmt.Println(s2)
    return
}

你可以试试bufio扫描

package main
import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        s := scanner.Text()
        fmt.Println(s)
    }
    if err := scanner.Err(); err != nil {
        os.Exit(1)
    }
}

关于string - 如何使用 fmt.scanln 从以空格分隔的字符串中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647039/

相关文章:

go - golang目录结构与包的关系

javascript - 一次搜索并显示多个单词。在 PHP 中

java - 读入(从 std in)不同行上的整数/整数列表 Java

python - 测试给定的输入值是否不从 while True 循环中断

java - 如何从字符串中删除一行?

go - 当我启用 module.jobs 时,Revel 没有启动

pointers - slice 结构行为

linux - 如何在 sed 中将方括号内的字母和数字替换为相同的数字和括号外的字母?

swift - 在 Swift 中将非常长的 Double 转换为 String

r - 检查两个字符串是否是字谜