Непоследовательный вывод символов в консоль

Рейтинг: 0Ответов: 0Опубликовано: 20.07.2023

Хотел написать программу генерации паролей для тренировки, при написании допустил ошибку(начиная со 2 ифа я генерил не диапазон и прибавлял начальное значение, а наоборот), и наткнулся на большую неожиданность. Почему-то вывод работает не последовательно. В конце должно выводиться слово ata , но оно выводится в центре, а должно быть в конце:

6CMW
#1BS&ata"&6,#

соответсвие символов кодам смотрю по таблице. Если выводить просто коды, то вывод следующий:

25
29
16
54
67
77
31
87
20
12
15
65
37
43
51
34
38
54
17
28
44
35
13
29
30
35
49
66
83
38
30
22
ata

Я понял, что 6CWM это коды которые начинаются с 54,67 и далее выводит все видимые символы(до 54 тоже символы не видимы), где-то видимо там же и перенос строки образуется

Максимально упростил код, разбил по отдельным ифам, всё равно ata в середине

сам код чтобы запустить

сам код чтобы был тут:

package main
import ("fmt"
        "math/rand"
)

func main() {
    length := 32
    for i := 0; i < length; i++ {
        var temp int
        var choise int
        choise = rand.Intn(4)
        if  choise == 0{
            temp = rand.Intn(26) + 65 //big symbs
        }
        if  choise == 1{
            temp = rand.Intn(48) + 10 //numbers
        }
        if  choise == 2{
            temp = rand.Intn(97) + 26 //small symbs
        }
        if  choise == 3{
            temp = rand.Intn(33) + 15// cpec symbs
        }
        fmt.Printf("%c",temp)
        // fmt.Println(temp)
    }
    fmt.Printf("%c",'a')
    fmt.Printf("%c",116)
    fmt.Printf("%c",'a')
}

Но самый на самый главный вопрос я ответа не нахожу: почему слово ata выводится в середине. В правильной версии такого нет

Ответы

Ответов пока нет.