go - 如何在golang中使用空格距离进行输入

标签 go input whitespace

我想基于golang中的空白从用户那里获取一些输入。
当前代码是...

fmt.Scanf("%d\n", &N)
var a [10]int
for n := 0; n < N; n++ {
    fmt.Scanf("%d\n", &a[n])
}

这段代码可以让我在终端中输入内容,例如...
5
1
2
3
4
5

因此,a [] = {1,2,3,4,5}
但是我想在终端上输入...
5
1 2 3 4 5

因此,a [] = {1,2,3,4,5}
因此,请帮助查找上面的for循环中应更改的内容。

最佳答案

您可以尝试这样的事情。这将读取第一个数字,该数字是您要创建的数组的大小,然后下一行将是数组中长度为(n)的项

import (
    "bufio"
    "fmt"
    "io"
    "os"
    "strconv"
    "strings"
)

func main() {
  reader := bufio.NewReaderSize(os.Stdin, 1024 * 1024)

  nTemp, err := strconv.ParseInt(readLine(reader), 10, 64)
  checkError(err)
  n := int32(nTemp)

  arrTemp := strings.Split(readLine(reader), " ")

  var arr []int32

  for i := 0; i < int(n); i++ {
      arrItemTemp, err := strconv.ParseInt(arrTemp[i], 10, 64)
      checkError(err)
      arrItem := int32(arrItemTemp)
      arr = append(arr, arrItem)
  }

  fmt.Printf("%#v, arr", arr)
}

所以当我尝试使用您给定的输入时,例如:
5
1 2 3 4 5

// I get the following:
[]int32{1, 2, 3, 4, 5}, arr

您提出的问题似乎在Hackerrank这样的网站上都是常见问题。

关于go - 如何在golang中使用空格距离进行输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536798/

相关文章:

http - 由对等 GO 重置连接

concurrency - 为什么我会从封闭的 channel 接收值(value)?

file-io - 如何使用 "compress/gzip"包来 gzip 文件?

python - 在非空白处测试字符串内容

go - 如何在 xorm 中维护迁移和模式?

angularjs - [[object Object]] 在输入文本angularjs

regex - HTML5 输入模式搜索报价

Python Pygame 字体 x 坐标

xml - 佛 :inline-elements create unwanted whitespace

mysql - 使用额外的空格来提高 MySQL 查询的可读性是否低效到不值得的地步?