ocaml で read_int 関数を実装すると (以下を参照)、
let read_int () = Scanf.bscanf Scanf.Scanning.stdin "%d" (fun x -> x)
format 引数が%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
ますか?. ありがとう。