aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoop <Joop Kiefte>2022-03-28 01:36:37 +0100
committerjoop <Joop Kiefte>2022-03-28 01:36:37 +0100
commit2fee34066122e90852c3e4f905347b6542609015 (patch)
tree5777369de703abec525c9b829290ad6a744a4562
parent1feecebff5d0eafdfee9708dc389220ecd4eb4b7 (diff)
Add space removalHEADmaster
-rw-r--r--prompt.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/prompt.go b/prompt.go
index 6b522fa..ae8492d 100644
--- a/prompt.go
+++ b/prompt.go
@@ -4,6 +4,7 @@ import (
"bufio"
"fmt"
"os"
+ "strings"
)
type Prompter interface {
@@ -22,8 +23,16 @@ func Read[T any]() (out T, err error) {
*o = s[:len(s)-1]
case *Prompter:
(*o).Prompt(s)
+ // If a number, remove all spaces before scanning
+ case *int, *int8, *int16, *int32, *int64, *uint, *uint8, *uint16, *uint32, *uint64, *float32, *float64, *complex64, *complex128:
+ s = strings.Replace(s, " ", "", -1)
+ _, err = fmt.Sscan(s, o)
+ if err != nil {
+ return nilv, err
+ }
default:
- _, err = fmt.Sscan(s, &out)
+ // Scan any other type, return error if it fails
+ _, err = fmt.Sscan(s, o)
if err != nil {
return nilv, err
}
@@ -34,7 +43,7 @@ func Read[T any]() (out T, err error) {
func MustRead[T any]() T {
out, err := Read[T]()
if err != nil {
- panic("Error during read: "+err.Error())
+ panic("Error during read: " + err.Error())
}
return out
}