package main import ( "bufio" "fmt" "os" "strings" ) func main() { var tlc, tcc, twc int for _, fname := range os.Args[1:] { var lc, cc, wc int file, err := os.Open(fname) if err != nil { fmt.Fprintln(os.Stderr, err) continue } defer file.Close() scan := bufio.NewScanner(file) for scan.Scan() { s := scan.Text() wc += len(strings.Fields(s)) cc += len(s) lc++ } tlc += lc tcc += cc twc += wc if err := scan.Err(); err != nil { fmt.Printf("Invalid Input: %s", err) } fmt.Printf("%5d %5d %5d %s\n", lc, cc, wc, fname) } fmt.Printf("%5d %5d %5d %s\n", tlc, tcc, twc, "total") }