// Dup2 prints the count and text of lines that appear more than once // in the input. It reads from stdin or from a list of named files. package main import ( "bufio" "fmt" "os" ) func Test() { fmt.Printf("test message!") } func DUP2() { counts := make(map[string]int) files := os.Args[1:] for _,value := range files { f,err :=os.Open(value) fmt.Printf("内容:%s\n",value) fmt.Print(f,err) // 地址 } if len(files) == 0 { countLines(os.Stdin, counts) } else { for _, arg := range files { f, err := os.Open(arg) if err != nil { fmt.Fprintf(os.Stderr, "dup2: %v\n", err) continue } countLines(f, counts) f.Close() } } for line, n := range counts { fmt.Printf("%d\t%s\n", n, line) } } //这里是读的文件内容 func countLines(f *os.File, counts map[string]int) { input := bufio.NewScanner(f) for input.Scan() && input.Text() != "end!" { //读取file的输入.--todo:这里的读取过程,会报错么,该怎么改 counts[input.Text()]++ } // NOTE: ignoring potential errors from input.Err() }