我正在尝试使用fmt.Fscanf,但我很难弄清楚如何使用。有以下代码:
package main
import (
"fmt"
"strings"
)
func main() {
var host, user, date, httpStr string
var code, size int
r := strings.NewReader(`127.0.0.1 - james [09/May/2018:16:00:39 +0000] "GET /report HTTP/1.0" 200 123`)
_, err := fmt.Fscanf(r, `%s - %s [%s], "%s" %d %d`,
&host, &user, &date, &httpStr, &code, &size)
if err != nil {
fmt.Printf("Failed to parse log line, error: %+v\n", err)
panic(err)
}
fmt.Println(host, user, date, httpStr, code, size)
}
去游乐场:https://play.golang.org/p/zGxc6MXOF3a
我得到:
Failed to parse log line, error: input does not match format
panic: input does not match format
goroutine 1 [running]:
main.main()
.../fscanf/main.go:19 +0x57b
exit status 2
为什么?
慕工程0101907
相关分类