diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | fmt.go | 33 |
2 files changed, 34 insertions, 0 deletions
@@ -1 +1,2 @@ markov +fmt @@ -0,0 +1,33 @@ +// This program wraps its input into short lines. +package main + +import ( + "bufio" + "fmt" + "os" +) + +const maxWidth = 80 // maximum number of characters per line + +func main() { + input := bufio.NewScanner(os.Stdin) + input.Split(bufio.ScanWords) + width := 0 + for input.Scan() { + word := input.Text() + + if width+1+len(word) > maxWidth { + fmt.Println() + width = 0 + } + + if width == 0 { + fmt.Print(word) + width += len(word) + } else { + fmt.Printf(" %s", word) + width += 1 + len(word) + } + } + fmt.Println() +} |