在Golang中通过fmt.Scanln()接受用户输入时出现问题

I m trying to take an input from the user through my console in golang by using fmt.Scanln(). It is working fine under normal circumstances. However, whenever I take input in a loop, the inputs are correct in the first iteration but during the next iterations of a loop, an extra smiley is added in the front of the received string. I don't know what the problem is. Will be very thankful if anyone proposes some solution.

func (a *Block) fillBlock() {
fmt.Println("Block Details:")
fmt.Print("Enter Block Name: ")
fmt.Scanln(&a.Data)

for i := 0; i < Students; i++ {
    fmt.Print(i, "Enter Student Roll# ")
    fmt.Scanln(&a.Grades[i].Rollno)
    fmt.Print(i, "Enter Student Grade# ")
    fmt.Scanln(&a.Grades[i].Grade)
}

fmt.Println("
Input Data:")

fmt.Println("Data: ",a.Data)

// Iterating over each student
for i := 0; i < Students && (a.Grades[i].Rollno != "" && a.Grades[i].Grade != ""); i++ {
    fmt.Println("Rollno: " + string(i) + a.Grades[i].Rollno)
    fmt.Println("Grade: " + string(i) + a.Grades[i].Grade)
}

}

Output

This is wrong:

    fmt.Println("Rollno: " + string(i) + a.Grades[i].Rollno)

Instead, use

    fmt.Println("Rollno: " + strconv.Itoa(i) + a.Grades[i].Rollno)

Or, better:

    fmt.Printf("Rollno: %d %s
",i a.Grades[i].Rollno)