为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
达令说 2021-12-06 19:41:06
想要“30 of month”但得到“30”package mainimport "fmt"func main() {    var s string    fmt.Scanln(&s)    fmt.Println(s)    return}$ go run test.go31 of month31Scanln 类似于 Scan,但在换行符处停止扫描,并且在最后一项之后必须有一个换行符或 EOF。
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

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)

    }

}


查看完整回答
反对 回复 2021-12-06
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

如果你真的想包含空格,你可以考虑使用fmt.Scanf()with format %q  a double-quoted string safely escaped with Go syntax,例如:


package main


import "fmt"


func main() {

    var s string

    fmt.Scanf("%q", &s)

    fmt.Println(s)

    return

}

运行它并:


$ go run test.go

"31 of month"

31 of month


查看完整回答
反对 回复 2021-12-06
?
守候你守候我

TA贡献1802条经验 获得超10个赞

这是工作程序


package main


import (

    "bufio"

    "fmt"

    "os"

    "strings"

)


func main() {

    var strInput, strInputLowerCase string

    var bFindI, bFindN, bFindA bool


    fmt.Println("Enter a string ")


    scanner := bufio.NewScanner(os.Stdin)

    if scanner.Scan() {

        strInput = scanner.Text()


    }

    fmt.Println(strInput)


}

它读取像“d skd a efju N”这样的字符串并打印相同的字符串作为输出。


查看完整回答
反对 回复 2021-12-06
  • 3 回答
  • 0 关注
  • 302 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信