在读取非空白字符或任何其他数据(例如%d,%c,%s和所有其他格式说明符)之前,scanf会跳过空格字符,然后再读取其他所有格式说明符 。我正在谈论空白字符的第一次出现,而不是后续的字符。 例如,scanf在读取标准输入时的行为
#include<stdio.h>
#define N 10
int main(void){
char str[N];
scanf("%s",str);
return 0;
}
在这种情况下的scanf将跳过的空格字符出现第一和读取下一 非空白数据,然后,如果它再次遇到空白字符,它将退出 读数。
的代码将无法编译; 'str'的类型不完整。您需要指定数组大小。 –
这个*编译*? – WhozCraig
@JonathanLeffler我纠正了这一点。 – chanzerre