在讀取非空白字符或任何其他數據(例如%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