如何使用fmt.scanln读取由空格分隔的字符串 [英] How to use fmt.scanln read from a string separated by spaces

查看:585
本文介绍了如何使用fmt.scanln读取由空格分隔的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

想要30个月,但得到30

 包主

导入 fmt

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

$ go run test.go
月31日
31




Scanln与Scan类似,但停止在换行符处扫描,并且在最后一项必须有换行符或EOF。


解决方案

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

<$ p $ (
$ f








$ b func main(){
var s1字符串
var s2字符串
fmt.Scanln(& s1,& s2)
fmt.Println(s1)
fmt.Println(s2)
返回
}

您可以尝试bufio scan

 包主
导入(
bufio
fmt
os


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


Want "30 of month" but get "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.

解决方案

The fmt Scan family scan space-separated tokens.

package main

import (
    "fmt"
)

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

You can try bufio scan

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)
    }
}

这篇关于如何使用fmt.scanln读取由空格分隔的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆