package main import ( "bufio" "fmt" "io/ioutil" "os" "strconv" "strings" ) func readTxt(path string) (string, error) { data, err := ioutil.ReadFile(path) if err != nil { //Do something } dataClean := strings.Replace(string(data), "\n", " ", -1) content := string(dataClean) return content, err } func main() { fmt.Print("entry the first word: ") newcommand := bufio.NewReader(os.Stdin) firstWord, _ := newcommand.ReadString('\n') firstWord = strings.TrimSpace(firstWord) fmt.Print("first word: ") fmt.Println(firstWord) fmt.Println("how many words you want on the text?") newcommand = bufio.NewReader(os.Stdin) answer, _ := newcommand.ReadString('\n') answer = strings.TrimSpace(answer) fmt.Print("Number of words on text to generate: ") fmt.Println(answer) count, err := strconv.Atoi(answer) if err != nil { fmt.Println("incorrect entry, need a positive number") } text, _ := readTxt("text.txt") fmt.Println("generating markov chains") states := markov.train(text) fmt.Println("generating text") generatedText := markov.generateText(states, firstWord, count) fmt.Println("") fmt.Println("generated text") fmt.Println("\x1b[32;1m" + generatedText + "\x1b[0m") }