package main import ( "fmt" "bufio" "os" "math" "strings" "strconv" "runtime" ) func isSure(quest string) bool { fmt.Printf("%s (type 'y/Y/yes' to confirm) : ",quest) in := bufio.NewReader(os.Stdin) line, err := in.ReadString('\n') if(runtime.GOOS == "windows"){ line = strings.TrimSuffix(line, "\r\n") //for Windows }else{ line = strings.TrimSuffix(line, "\n") } checkErr(err) if ( line == "yes" || line == "y" || line == "Y") { return true } else { return false } } func checkErr(err error) { if err != nil { panic(err) } } func getInput(quest string) string { fmt.Print(quest) in := bufio.NewReader(os.Stdin) line, err := in.ReadString('\n') if(runtime.GOOS == "windows"){ line = strings.TrimSuffix(line, "\r\n") //for Windows }else{ line = strings.TrimSuffix(line, "\n") } checkErr(err) return line } func getNewInput(quest,old string) string { if old != "" { fmt.Println("Current:",old) } fmt.Print(quest) in := bufio.NewReader(os.Stdin) line, err := in.ReadString('\n') if(runtime.GOOS == "windows"){ line = strings.TrimSuffix(line, "\r\n") //for Windows }else{ line = strings.TrimSuffix(line, "\n") } checkErr(err) if line == "" { return old }else{ return line } } func stringArray2String(in []string, delim string) (string) { var out string for i,a := range in { if i==0 { out=a }else{ out=fmt.Sprintf("%s%s%s",out,delim,a) } } return out } func string2FloatArray(in string,delim string)(out []float64) { read := strings.Split(in,delim) for _,s := range read{ fs,err := strconv.ParseFloat(s,64) checkErr(err) out = append(out,fs) } return } func string2StringArray(in string,delim string)(out []string) { read := strings.Split(in,delim) for _,s := range read{ out = append(out,s) } return } func Round(x, unit float64) (float64) { return math.Round(x/unit) * unit } func cleanString(in string) (out string) { work := strings.Replace(in,"/","-",-1) work = strings.Replace(work,"*","-",-1) work = strings.Replace(work,":","-",-1) work = strings.Replace(work,"<","-",-1) work = strings.Replace(work,">","-",-1) work = strings.Replace(work,"?","-",-1) work = strings.Replace(work,"|","-",-1) work = strings.Replace(work,"+","-",-1) work = strings.Replace(work,",","-",-1) work = strings.Replace(work,";","-",-1) work = strings.Replace(work,"=","-",-1) work = strings.Replace(work,"[","-",-1) out = strings.Replace(work,"]","-",-1) return } func sumFloatArray(in []float64) (sum float64) { for _,e := range in{ sum += e } return }