当我用 ocaml 实现 read_int 函数时(见下文),
let read_int () = Scanf.bscanf Scanf.Scanning.stdin "%d" (fun x -> x)
如果格式参数是%d
(no space) ,编译器将返回失败并显示以下信息:
Exception:
Scanf.Scan_failure
"scanf: bad input at char number 1: ``character '\\n' is not a decimal digit''".
但是如果我使用' '%d
(带空格的前缀),那很好,为什么%d
错了?%d
和有什么区别' '%d
?. 谢谢。