попробуйте использовать метод ReadLine () вместо ReadString ()
, скажем, в документе
ReadLine пытается вернуть одну строку, не включая байты конца строки.
ReadString читает до первого появления разделителя во входных данных, возвращая строку, содержащую данные до и , включая разделитель
Вот обновленный deposit
код для справки:
[...]
fmt.Print("How much would you like to deposit? ")
depositAmount, _, err := reader.ReadLine()
if err != nil {
fmt.Printf("ReadLine() error: '%s'", err)
}
da, err := strconv.Atoi(string(depositAmount))
if err != nil {
fmt.Printf("strconv error: '%s'", err)
}
balance += balance + da
fmt.Print("Your balance is ", balance)
[...]
Кроме того, вы можете обрезать в зависимости от того, какую ОС вы выполняете свой код.
if runtime.GOOS == "windows" {
input = strings.TrimRight(input, "\r\n")
} else {
input = strings.TrimRight(input, "\n")
}