%d 如果%d后存在空格或者回车、制表符等空白字符: scanf("%d ", &a); 这个时候scanf会一直等待,直到有了空白字符以外的字符输入。 %c 如果%c之前存在空格: scanf(" %c", &ch); 那么读入时会忽略%c前所有的空白字符。 问问题 关于其底层逻辑,我找了很多资料都没找到,有大佬的话还请帮忙解答一下~~~%%%