作为标题,我很难描述问题。所以我在下面展示了示例代码,输入和输出。
package main
import (
"fmt"
)
func main() {
for i := 1; i <= 3; i++ {
var a, b, c string
fmt.Scan(&a)
fmt.Scan(&b)
fmt.Scan(&c)
fmt.Printf("%s\n", a)
}
}
输入
a b c
d e f
g h i
预期产出
a
d
g
然而,实际输出首先打印“a”,“d”。然后,在按返回(输入)键后,打印“g”。这是实际输出。
更新
如果我粘贴了整个九个字符,则第三次迭代被挂起。 但是,如果我只是一个接一个地输入字符,它就会达到预期的输出。
答案 0 :(得分:2)
如果没有返回(输入)?
,您是如何输入该输入的?如果您以交互方式运行并实际输入所有输入,我认为您将理解输出的原因。
你必须:
<label>
- 由于第三个a b c
不知道Scan
是否只是您输入的所有内容,因此不会输出任何内容c
- 此时此刻您将看到return (enter)
输出请查看a
的文档,该文档也解释了这一点: