此问题在此处已有答案:
Whitespace before %c specification in the format specifier of scanf function in C(2个答案)
scanf() leaves the newline character in the buffer(7个答案)
2天前关闭。
为什么我需要在%c格式说明符前给予空间,而我不需要%d或%f的空间,为什么如果没有给空间,计算机会把%c的输入搞砸,但后面的没有问题?
举例说明。
此问题在此处已有答案:
Whitespace before %c specification in the format specifier of scanf function in C(2个答案)
scanf() leaves the newline character in the buffer(7个答案)
2天前关闭。
为什么我需要在%c格式说明符前给予空间,而我不需要%d或%f的空间,为什么如果没有给空间,计算机会把%c的输入搞砸,但后面的没有问题?
举例说明。
1条答案
按热度按时间ffx8fchx1#
因为
%c
应该接受 * 任何 * 字符,包括空格。在它之前添加空格会消耗所有前导空格,这样就可以得到下一个非空格字符,但是如果你想接受空格字符作为有效输入,就不必 * 必须 * 添加前导空格。这两种方法都没有错,只是它们的用途不同。