1. scanf 函式是有返回值的,它的返回值可以分成三種情況
1) 正整數,表示正確輸入引數的個數。例如執行 scanf("%d %d", &a, &b);
如果使用者輸入"3 4",可以正確輸入,返回2(正確輸入了兩個變數);
如果使用者輸入"3,4",可以正確輸入a,無法輸入b,返回1(正確輸入了乙個變數)。
2) 0,表示使用者的輸入不匹配,無法正確輸入任何值。如上例,使用者如果輸入",3 4",返回0。
3) eof,這是在stdio.h裡面定義的常量(通常值為-1),表示輸入流已經結束。在windows下,使用者按下ctrl+z(會看到乙個^z字元)再按下回車(可能需要重複2次),就表示輸入結束;linux/unix下使用ctrl+d表示輸入結束。
所以可以使用下面的**來處理輸入:
while (scanf("%s %c %c", str, &oldchar, &newchar) == 3) /* 或!= eof , 但前者更好 */
2. 為什麼前面 scanf 的格式串裡面,%s和%c中間需要空格呢?
那是因為如果沒空格的話。。。oldchar輸入的就是空格了= =.
3. 順便說一下,printf的返回值是輸出的字元數,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。
C語言printf 與scanf 返回值
在c語言中printf 函式不僅可以將指定資訊列印輸入到螢幕上,同時這個函式在執行的過程中會存在乙個返回值,這個返回值就是所要輸出字串的字元數 包括空格和換行符 include int main void 結果 1111sgsgrg 11包括 n換行符。scanf 在c語言中一般是讀取輸入的字元,也...
C語言scanf 函式返回值的問題
不經意中發現scanf 的返回值問題,自己試驗和了解了一下,一些所知與各位分享 void main 1.scanf 函式有返回值且為int型。2.scanf 函式返回的值為 正確按指定格式輸入變數的個數 也即能正確接收到值的變數個數。從上邊的例子中可以得到驗證,這裡用變數x接收scanf 函式的返回...
C語言scanf函式的返回值問題
不經意中發現scanf 的返回值問題,自己試驗和了解了一下,一些所知與各位分享 void main 1.scanf 函式有返回值且為int型。2.scanf 函式返回的值為 正確按指定格式輸入變數的個數 也即能正確接收到值的變數個數。從上邊的例子中可以得到驗證,這裡用變數x接收scanf 函式的返回...