我不确定如何使用Scanf
功能。假设我想在扫描时输入数字10。通过这样做,输出不应该是0xA?
另外,如何使用具有两个或更多扫描参数的函数(例如fmt.Scanf("%x", &e, &f, &g)
)?
package main
import (
"fmt"
)
func main() {
var e int
fmt.Scanf("%#X", &e)
fmt.Println(e)
}
答案 0 :(得分:8)
您必须先将输入作为int输入,然后打印十六进制值:
package main
import (
"fmt"
"os"
)
func main() {
var e int
fmt.Scanf("%d", &e)
fmt.Fprintf(os.Stdout, "%#X\n", e)
}
输出是:
go run main.go
10
0XA
对于多个输入:
package main
import (
"fmt"
"os"
)
func main() {
var e int
var s string
fmt.Scanf("%d %s", &e, &s)
fmt.Fprintf(os.Stdout, "%#X \t%s\n", e, s)
}
输出是:
go run main.go
10 hello
0XA hello
更新:fmt.Scanf()与fmt.Scan()
扫描能够循环:
package main
import (
"fmt"
"os"
)
func main() {
var e int
var f int
var g int
fmt.Scan(&e, &f, &g)
fmt.Fprintf(os.Stdout, "%d - %d - %d", e, f, g)
}
输出是:
go run main.go
10
11
12
10 - 11 - 12
Scanf能够从格式化字符串中“”“过滤”“”:
package main
import (
"fmt"
"os"
)
func main() {
var e int
var f int
fmt.Scanf("%d Scanf %d", &e, &f)
fmt.Fprintf(os.Stdout, "%d - %d", e, f)
}
输出是:
go run main.go
10 Scanf 11
10 - 11