c語言scanf()使用中的逗號問題
代碼1:
int a, b;
a=10;
b=20;
scanf("%d,%d,\n", &a, &b); // a=100, b =200,錯誤用法
printf("%d,%d,\n", a, b);
代碼2:
int a, b;
a=10;
b=20;
scanf("%d%d,\n", &a, &b); // a=100, b =200,正確用法
printf("%d,%d,\n", b,a);
請問輸出結果有什么差異?
是有差異的,代碼1輸出時,a=100, b=20;而代碼2輸出時,a=100,b=200。根據(jù)結果,我們可以看到第一個有點問題的,本來我們想把接盤輸入的打印出來,鍵盤輸入100和200,打印也應該是100和200,然而第一個只是輸出了100和20,換句話說就是200沒有給b賦值。原因就差在scanf里面的那個多的逗號上,兩個數(shù)的輸出在scanf()中是不能加逗號的,在printf上是可以加的。
也就是scanf("%d%d,\n", &a, &b)是正確的,%d和%d之間沒有逗號。
已經(jīng)用Devcpp驗證過了。

本文結束。
標簽: