«Символы» в Go называются рунами , а rune
является псевдонимом для int32
. Вам нужно два изменения:
- Сканирование с правильным глаголом (ваш
Scan
действительно не работает - проверьте на ошибки!)
- Печатать с правильным глаголом
Вот расширенный пример:
package main
import (
"fmt"
"log"
)
func main() {
var ch rune
fmt.Printf("Enter Char : ")
_, err := fmt.Scanf("%c", &ch)
if err != nil {
log.Fatal(err)
}
fmt.Printf("ch = %x\n", ch)
ch++
fmt.Printf("ch+1 = %x\n", ch)
fmt.Printf("Next char is %c\n", ch)
}
Пример сеанса:
Enter Char : a
ch = 61
ch+1 = 62
Next char is b
Обязательно прочитайте это официальное сообщение в блоге Go , чтобы лучше понять, как взаимодействуют руны и строки.