%c前面加空格不是必须的,但有了空格就可以忽略你输入的空格。 例如:scanf(" %c" ,&m),你输入了’ a’(a前面有个空格),a就能被c接受。
但控制符前如果没空格,那c就接受了空格,这个可以防止误操作,忽略空格输入,接受第一个非空格输入。 参考内容:《C Primer Plus 》P95