2
當我用%d或%f使用scanf時,它跳過空格字符。另一方面,當與%c一起使用時,它會讀取空白字符。有人詳細說明了爲什麼會發生這種情況?不同格式說明符的scanf函數的不同行爲
用%d或%F等下面的代碼那麼它跳過空白字符自動
#include<stdio.h>
void main(void)
{
int i;
scanf("%d ",&i);
}
如果我讀這樣
#include<stdio.h>
void main(void)
{
char ch;
scanf(" %c ",&ch);
scanf(" %c",&ch); /*or like this*/
}
輸入它跳過的空白字符。 爲什麼scanf顯示與格式說明符不同的行爲?
我不認爲[這會幫助](http://en.cppreference.com/w/c/io/fscanf)。格式說明符及其修飾符的描述非常詳細。 – WhozCraig
「爲什麼會發生這種情況?」 - 因爲'%c'尋找*任何*字符。 – 2013-08-26 12:06:48
是的,如果'%c'總是跳過它們,會如何找到一個空格字符?你的任何輸入都不會有空間。 –