@marselabdullin

Почему выдает ошибку что введено не число go?

Создал простейшую программу для отработки базового синтаксиса на go по туториалу, но компилятор ругается на то, что ввел не число, хотя ввожу только цифры
package main

import (
	"bufio"
	"fmt"
	"math/rand"
	"os"
	"strconv"
	"strings"
	"time"
)

func main() {
	min, max := 1, 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(max-min) + min

	fmt.Println("Guess a number between 1 and 100")
	fmt.Println("Please input your guess")

	attempts := 0
	for {
		attempts++
		reader := bufio.NewReader(os.Stdin)
		input, err := reader.ReadString('\n')
		if err != nil {
			fmt.Println("An error occured while reading input. Please try again", err)
			continue
		}

		input = strings.TrimSuffix(input, "\n")

		guess, err := strconv.Atoi(input)
		if err != nil {
			fmt.Println("Invalid input. Please enter an integer value")
			continue
		}

		fmt.Println("Your guess is", guess)

		if guess > secretNumber {
			fmt.Println("Your guess is bigger than the secret number. Try again")
		} else if guess < secretNumber {
			fmt.Println("Your guess is smaller than the secret number. Try again")
		} else {
			fmt.Println("Correct, you Legend! You guessed right after", attempts, "attempts")
			break
		}
	}
}
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@12rbah
Invalid input. Please enter an integer value strconv.Atoi: parsing "2\r": invalid syntax - выдает такую ошибку, если err выводить, поэтому можно убрать еще один символ strings.TrimSuffix(input, "\r") и будет работать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Level Travel Москва
от 130 000 до 200 000 ₽
от 3 000 до 4 200 $
Digital Horizon Москва
До 220 000 ₽
11 авг. 2020, в 15:28
3000 руб./за проект
11 авг. 2020, в 15:06
10000 руб./за проект
11 авг. 2020, в 14:46
10000 руб./за проект