scanf(“%c”)和scanf(“%c”)有什么区别?


回答 1:

区别在于空间。在scanf格式字符串中,空格是控制字符,它指示它进入循环,并从isspace()返回true的输入流中丢弃每个连续的字符(空格,结尾行,制表符)。

许多scanf转换(例如%d或%s)会自动跳过前导空格,但不会跳过%c,%[或%n


回答 2:
7.21.6.2 fscanf函数5。通过读取输入直到第一个非空白字符(仍未读取)或直到无法读取更多字符为止,执行由空白字符组成的指令。该指令永远不会失败8。除非规范中包含[,c或n说明符,否则将跳过输入的空白​​字符(由isspace函数指定)。