【发布时间】:2020-01-17 10:44:37
【问题描述】:
需要一些帮助,因为我在这里要疯了。
所以我遇到的问题是读取标准输入 (https://www.hackerrank.com/challenges/diagonal-difference/problem) 的第一行,以获取矩阵的大小,以便计算对角线和差。
如果我执行以下操作:
var n int
fmt.Scan(&n)
我得到 n 的输出为 0,我希望它为 3。
我也试过了:
in := bufio.NewReader(os.Stdin)
line, _, _ := in.ReadLine()
read_line, _ := strconv.Atoi(string(line))
这样我也只能得到一个 0。 我正在努力解决这个问题,这正是我开始学习 Go 的原因,因为我缺少一些编程基础知识,而 Go 非常固执己见。 谢谢,帮助!
编辑:
无论如何,我只是听了我的预感,stdin 上什么都没有,只是用多数组的长度初始化矩阵,因为我从 https://www.youtube.com/watch?v=fd4EPh2tYrk 记得 Go 是如何在其“系统”中真正表示多维数组的。
【问题讨论】:
-
如果你使用
fmt.Scanln(&n)会怎样?顺便说一句,fmt.Scan()如果您在终端中运行它,也会这样做。它返回一个错误,请打印出来。在所有尝试中打印错误。 -
嗨,谢谢,也尝试了您的解决方案,但更多的是关于标准的 Hackerrank 欺骗性,我 99% 确定他们在标准输入上没有任何内容,还尝试了 ReadString,没有任何内容。