为什么我需要在%c格式说明符前给予空格?[duplicate]

l5tcr1uw  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(369)

此问题在此处已有答案

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的输入搞砸,但后面的没有问题?
举例说明。

ffx8fchx

ffx8fchx1#

因为%c应该接受 * 任何 * 字符,包括空格。在它之前添加空格会消耗所有前导空格,这样就可以得到下一个非空格字符,但是如果你想接受空格字符作为有效输入,就不必 * 必须 * 添加前导空格。这两种方法都没有错,只是它们的用途不同。

相关问题