Go程序在WIndows 7中不工作

Go程序在WIndows 7中不工作,go,Go,我使用这个程序创建一个单链表并打印列表中的元素。它在我的Mac电脑上工作,但当我在Windows7上尝试相同的程序时,它并没有像预期的那样工作。有人能确定这里的问题是什么吗 // Create a single linked list and display elements of list package main import "fmt" // Node structure type Node struct { Value int Next *Node } func m

我使用这个程序创建一个单链表并打印列表中的元素。它在我的Mac电脑上工作,但当我在Windows7上尝试相同的程序时,它并没有像预期的那样工作。有人能确定这里的问题是什么吗

// Create a single linked list and display elements of list
package main

import "fmt"

// Node structure
type Node struct {
    Value int
    Next *Node
}

func main() {
    var value int
    var head, current *Node

    // Create linked list
    for i := 0; i <= 5; i++ {
       fmt.Print("Plase enter a number: ")
       fmt.Scanf("%d", &value)

       var newNode = &Node{value, nil}
       if head != nil {
          current.Next = newNode
       } else {
          head = newNode
       }
       current = newNode
    }

    // Print elements of linked list
    for node := head; node != nil; node = node.Next {
        fmt.Printf("%d ", node.Value)
    }
}

看起来Scanf处理windows新行(
\r\n
)的方式与处理unix新行(
\n
)的方式不同。我相信这是Go旧版本中的一个bug。你正在运行哪个版本?尝试使用1.7或更高版本


作为一种解决方法,请尝试执行
fmt.Scanf(“%d\n”,&value)
来明确地使用换行符。

看起来
Scanf
对待windows换行符(
\r\n
)的方式与unix换行符(
\n
)的方式不同。我相信这是Go旧版本中的一个bug。你正在运行哪个版本?尝试使用1.7或更高版本

作为一种解决方法,请尝试执行
fmt.Scanf(“%d\n”,&value)
以显式地使用换行符

E:\go > go run linked_list.go
Please enter a number: 10
Please enter a number: Please enter a number: 20
Please enter a number: Please enter a number: 30
Please enter a number: 10 20 20 30 30 30