我是C編程的新手,我現在正在學習scanf
。如何用scanf()解釋我的代碼?
我寫了一些代碼,並試圖理解它。
下面是代碼:
#include <studio.h>
int main(){
int a=1, b=2, c=3;
scanf ("%d%d", &a,&b);
scanf ("%d", &c);
scanf ("%d", &c);
printf ("a=%d\nb=%d\nc=%d\n", a, b, c);
return 0;
}
When I input
11 22 33 44
The output is
a=11
b=22
c=44
這是正常的。但是,當我輸入:
11, 22, 33, 44
Output
a=11
b=2
c=3
它看起來像逗號停止輸入過程。
誰能向我解釋爲什麼會發生這種情況?
實際上,將%d%d
之間的逗號時(這就像「%d, %d"
),並提供輸入數據,輸入已用逗號隔開。
誰能給我逗號幾點建議scanf
參數?
'scanf'嘗試解釋您指定的輸入。對於第一個'%d'來說很好,它顯然是11.然後它讀取一個','並試圖將它轉換爲一個整數,這不起作用。所以它失敗了,並且它的值和以前一樣('b = 2')。 下一個'scanf'嘗試相同的並再次失敗,因此具有'c = 3'。所以只是不要用''分隔你的值,你會沒事的。 – SgtDroelf
與其試圖猜測'scanf()'的行爲如何,而不考慮您使用的任何文本中的文檔或其解釋?或者也許問你的導師?在尋求幫助之前,我們希望您能夠做出合理的努力爲自己找到解決方案。 –
感謝您的回覆。當我自己學習C時,沒有教練可以幫助我。 – user7241487