From 2fee34066122e90852c3e4f905347b6542609015 Mon Sep 17 00:00:00 2001 From: joop Date: Mon, 28 Mar 2022 01:36:37 +0100 Subject: Add space removal --- prompt.go | 13 +++++++++++-- 1 file 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 } -- cgit v1.2.3-70-g09d2