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