package aoc import ( "bufio" "fmt" "io/ioutil" "log" "os" "strconv" ) func StdinToStringSlice() []string { var input []string scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { input = append(input, scanner.Text()) } return input } func Atoi(i string) int { var ret int var err error if ret, err = strconv.Atoi(i); err != nil { log.Fatal("Invalid Atoi") } return ret } func Itoa(i int) string { return strconv.Itoa(i) } func StdinToString() string { var input string scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { input += scanner.Text() } return input } func FileToString(fn string) string { return string(FileToBytes(fn)) } func FileToBytes(fn string) []byte { var c []byte var err error c, err = ioutil.ReadFile(fn) if err != nil { fmt.Println("Unable to read file: " + fn) os.Exit(1) } return c } // Some character code stuff for prettier output const ( BorderNS = "\u2502" BorderWE = "\u2500" BorderNW = "\u250C" BorderNE = "\u2510" BorderSW = "\u2514" BorderSE = "\u2518" FillChar = "\u2588" ClearScreen = "\033[H\033[2J" )