int scanf(const char *format,...)
scanf()函式返回成功賦值的資料項數,讀到檔案末尾出錯時則返回eof。
注意事項:
(1) 對於字串陣列或字串指標變數,由於陣列名和指標變數名本身就是位址,因此使用scanf()函式時,不需要在它們前面加上"&"操作符。
(2) 可以在格式化字串中的"%"各格式化規定符之間加入乙個整數,表示任何讀操作中的最大位數。
(3) scanf()函式中沒有精度控制。
(4) scanf中要求給出
變數位址,如給出變數名則會出錯
如 scanf("%d",a);是非法的,應改為scanf("%d",&a);才是合法的。
(5) 在輸入多個數值資料時,若格式控制串中沒有非
格式字元
作輸入資料之間的間隔,則可用空格,tab或回車作間隔。
c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。
(6) 在輸入
字元資料(%c)時,若格式控制串中無非
格式字元
,則認為所有輸入的字元均為有效字元。
「scanf()的格式控制串可以使用空白
字元或其它非空白字元,使用空白字元會使scanf()函式在讀操作中略去輸入中的零個或多個空白字元。」
當使用scanf函式時,如果遇到一些匪夷所思的問題,在scanf函式後正確使用fflush(stdin);,清空輸入緩衝區,可以解決很多問題
從頭認識C getchar()的返回值
getchar 函式原型為int getchar void getchar 函式出錯會返回eof。如下例子 char ch while ch getchar eof eof需要的位數比字元型值所能提供的位數要多,這也是getchar返回乙個整形值而不是字元值的原因。然而,把getchar的返回值首先...
從頭認識java 1 5 繼承(2)
接著上一章節,我們來繼續介紹繼承。1.子類呼叫方法時的查詢方法的順序 package com.ray.ch01 public class animal public void sleep package com.ray.ch01 public class bird extends animal pu...
從頭認識C 左值和右值
c c 語言中可以放在賦值符號左邊的變數,即具有對應的可以由使用者訪問的儲存單元,並且能夠由使用者去改變其值的量。左值表示儲存在計算機記憶體的物件,而不是常量或計算的結果。或者說左值是代表乙個記憶體位址值,並且通過這個記憶體位址,就可以對記憶體進行讀並且寫 主要是能寫 操作 這也就是為什麼左值可以被...